Preventing conflicts among bid curves used with transactive controllers in a market-based resource allocation system

ABSTRACT

Disclosed herein are representative embodiments of methods, apparatus, and systems for distributing a resource (such as electricity) using a resource allocation system. One of the disclosed embodiments is a method for operating a transactive thermostatic controller configured to submit bids to a market-based resource allocation system. According to the exemplary method, a first bid curve is determined, the first bid curve indicating a first set of bid prices for corresponding temperatures and being associated with a cooling mode of operation for a heating and cooling system. A second bid curve is also determined, the second bid curve indicating a second set of bid prices for corresponding temperatures and being associated with a heating mode of operation for a heating and cooling system. In this embodiment, the first bid curve, the second bid curve, or both the first bid curve and the second bid curve are modified to prevent overlap of any portion of the first bid curve and the second bid curve.

ACKNOWLEDGMENT OF GOVERNMENT SUPPORT

This invention was made with Government support under Contract DE-AC05-76RLO1830 awarded by the U.S. Department of Energy. The Government has certain rights in the invention.

FIELD

This application relates generally to the field of power grid management and control.

BACKGROUND

Demand response and dynamic pricing programs are expected to play increasing roles in the modern smart grid environment. These programs typically utilize a price signal as a means to control demand. Active markets allow customers to respond to fluctuations in wholesale electrical costs, but may not allow the utility to directly and completely control demand. Transactive markets, utilizing distributed transactive controllers and a centralized auction, can provide an interactive system that helps ensure that consumer demand is met, supply limits are not exceeded, and that price volatility is reduced. With the current proliferation of computing and communication resources, the ability now exists to create transactive demand response programs at the residential level.

SUMMARY

Disclosed below are representative embodiments of methods, apparatus, and systems for distributing a resource (such as electricity). For example, improved systems and methods for computing demand bids in a transactive and active market are described herein. In particular embodiments, bids are computed using a cooling mode bid curve and a heating mode bid curve that are adapted so that they do not conflict with one another.

One of the exemplary embodiments disclosed herein is a method for operating a thermostatic controller comprising determining a first bid curve, the first bid curve indicating a first set of bid prices for corresponding temperatures, the first bid curve being associated with a cooling mode of operation for a heating and cooling system; determining a second bid curve, the second bid curve indicating a second set of bid prices for corresponding temperatures, the second bid curve being associated with a heating mode of operation for the heating and cooling system; and modifying the first bid curve, the second bid curve, or the first bid curve and the second bid curve to prevent overlap of any portion of the first bid curve and the second bid curve. In certain implementations, the act of modifying can comprise modifying the first bid curve and not the second bid curve. In other implementations, the act of modifying can comprise modifying the second bid curve and not the first bid curve. In some implementations, the act of modifying comprises modifying the first bid curve by eliminating at least a portion of a pre-cooling zone of the first bid curve or eliminating at least a portion of a pre-heating zone of the second bid curve. In certain implementations, the act of modifying comprises modifying the first bid curve and the second bid curve so that the first bid curve does not include a pre-cooling zone and the second bid curve does not include a pre-heating zone. In some implementations, the act of modifying comprises modifying the first bid curve and the second bid curve so that a lower end of the first bid curve is separated from an upper end of the second bid curve by a fixed amount. For example, the fixed amount can correspond to a deadband setting for the HVAC system. In some implementations, the act of modifying comprises modifying the first bid curve and the second bid curve by creating a region between the first bid curve and the second bid curve that does not trigger pre-heating or pre-cooling. For example, the region between the first bid curve and the second bid curve can be centered about an average temperature between a cooling mode set point and a heating mode set point.

Another exemplary embodiment disclosed herein is a method for operating a thermostatic controller comprising, responsive to an observed temperature, causing a heating, ventilation, and air conditioning (“HVAC”) system to become operational in a first operational mode, the first operational mode being associated with a first bid curve for determining a bid price for submission to a market-based resource allocation system; and, while the HVAC system operates in the first operational mode, modifying a second bid curve associated with a second operational mode or a response by the controller to the second bid curve so that the second bid curve does not interfere with the HVAC system operating according the first bid curve. In certain implementations, the first operational mode is a cooling mode, the first bid curve is a cooling mode bid curve, the second operational mode is a heating mode, and the second bid curve is a heating mode bid curve. In such implementations, the act of modifying can comprise eliminating at least a portion of a pre-heating zone of the heating mode bid curve or eliminating the response by the controller to at least a portion of the pre-heating zone of the heating mode bid curve. In such implementations, the modifying can comprise modifying an upper temperature limit of the heating mode bid curve to be less than a lower temperature limit of the cooling mode bid curve. Further, the upper temperature limit of the heating mode bid curve can be less than the lower temperature limit of the cooling mode bid curve by at least an amount corresponding to a deadband setting for the HVAC system. In some implementations, the first operational mode is a heating mode, the first bid curve is a heating mode bid curve, the second operational mode is a cooling mode, and the second bid curve is a cooling mode bid curve. In such implementations, the act of modifying can comprise eliminating at least a portion of a pre-cooling zone of the cooling mode bid curve or eliminating the response by the controller to at least a portion of the pre-cooling zone of the cooling mode bid curve. In such implementations, the act of modifying can comprise modifying a lower temperature limit of the cooling mode bid curve to be greater than an upper temperature limit of the heating mode bid curve. Further, the lower temperature limit of the cooling mode bid curve can be greater than the upper temperature limit of the heating mode bid curve by at least an amount corresponding to a deadband setting for the HVAC system. In certain implementations, the method further comprises designating the first operational mode of the HVAC system as the dominant mode. In such implementations, the method can further include changing the designation of the dominant mode from the first operational mode if one or more of the following occurs: (a) an observed temperature crosses a base set temperature for activating the second operational mode; (b) a schedule change is detected; or (c) a change to a base set temperature for either the first operational mode or the second operational is detected. In some implementations, the currently observed temperature is a first observed temperature, and the method further comprises, responsive to a second observed temperature, causing the HVAC system to become operational in the second operational mode; and, while the HVAC system operates in the second operational mode, restoring the second bid curve to its unmodified state or the response by the controller to the second bid curve to its original response. In certain implementations, the method can further comprise modifying the first bid curve or a response by the controller to the first bid curve so that the first bid curve does not interfere with the HVAC system operating according the second bid curve.

A further exemplary embodiment disclosed herein is a method for operating a transactive controller comprising, when an observed temperature is greater than a set point for triggering a cooling mode, computing bids for use in a market-based resource allocation system in accordance with a first set of bid curves, the first set of bid curves including or being treated as including a first cooling mode bid curve that includes a first pre-cooling portion and a first heating mode bid curve that either does not include any pre-heating portion or that includes a first pre-heating portion that applies across a smaller temperature range than the first pre-cooling portion; and, when the observed temperature is less than a set point for triggering a heating mode, computing the bids for use in the market-based resource allocation system in accordance with a second set of bid curves, the second set of bid curves including or being treated as including a second heating mode bid curve that includes a second pre-heating portion and a second cooling mode bid curve that either does not include any pre-cooling portion or that includes a second pre-cooling portion that applies across a smaller range than the second pre-heating portion. In some implementations, the method further comprises, once the observed temperature is greater than the set point for triggering the cooling mode, computing the bids in accordance with the first set of bid curves until the observed temperature is less than the set point for triggering the heating mode, and thereafter computing the bids in accordance with the second set of bid curves. In certain implementations, the method further comprises, once the observed temperature is greater than the set point for triggering the cooling mode, computing the bids using the first set of bid curves until an event occurs, the event comprising one or more of: (a) detecting a schedule change; (b) detecting a change to the set point for triggering the cooling mode; or (c) detecting a change to the set point for triggering the heating mode. In some implementations, the method further comprises, once the observed temperature is less than the set point for triggering the heating mode, computing the bids in accordance with the second set of bid curves until the observed temperature is greater than the set point for triggering the cooling mode, and thereafter computing the bids in accordance with the first set of bid curves. In certain implementations, the method further comprises, once the observed temperature is less than the set point for triggering the heating mode, computing the bids using the first set of bid curves until an event occurs, the event comprising one or more of: (a) detecting a schedule change; (b) detecting a change to the set point for triggering the cooling mode; or (c) detecting a change to the set point for triggering the heating mode. In some implementations, the first pre-heating portion and the first pre-cooling portion are separated from one another by a predetermined temperature range, and the second pre-heating portion and the second pre-cooling portion are separated by the predetermined temperature range. In such implementations, the predetermined temperature range can be user selectable.

Another exemplary embodiment disclosed herein is a method for operating a resource-allocation market, comprising receiving a plurality of requests for electricity from a plurality of end-use consumers, wherein each of the requests indicates a requested quantity of electricity and a consumer-requested index value indicative of a maximum price a respective end-use consumer will pay for the requested quantity of electricity; receiving a plurality of offers for supplying electricity from a plurality of resource suppliers, wherein each of the offers indicates an offered quantity of electricity and a supplier-requested index value indicative of a minimum price for which a respective supplier will produce the offered quantity of electricity; and, using computing hardware, determining a dispatched index value at which electricity is to be supplied. In this embodiment, the act of determining the dispatched index value comprises forming an end-use consumer curve from the requests and a resource supplier curve from the offers; determining that an intersection of the end-use consumer curve and the resource supplier curve occurs at a same quantity level but at two different index value levels; and selecting an index value between the two different index value levels as the dispatched index value. In certain implementations, the act of selecting the dispatched index value comprises selecting an index value that is an average of the two different index value levels. In some implementations, the act of selecting the dispatched index value comprises determining that a next higher offer in the resource supplier curve after the intersection has an index value that is less than the average of the two different index value levels; and selecting as the dispatched index value an index value that is below the index value of the next higher offer in the resource supplier curve. In such implementations, the dispatched index value can be a single index value increment below the index value of the next higher offer in the resource supplier curve. In certain implementations, the act of selecting the dispatched index value comprises determining that a next lower request in the end-use consumer curve after the intersection has an index value that is greater than the average of the two different index value levels; and selecting as the dispatched index value an index value that is above the index value of the next lower offer in the end-use consumer curve. In such implementations, the dispatched index value can be a single index value increment above the index value of the next lower offer in the end-use consumer curve. In some implementations, the act of forming the end-use consumer curve from the requests and the resource supplier curve from the offers comprises separating the requests and the offers into two groups; and sorting each item in the two groups according to index value and a cumulative quantity level. In certain implementations, the method further comprises transmitting the dispatched index value to at least one of the end-use consumers or resource suppliers.

A further exemplary embodiment disclosed herein is another method for operating a resource-allocation market that comprises receiving a plurality of requests for electricity from a plurality of end-use consumers, wherein each of the requests indicates a requested quantity of electricity and a consumer-requested index value indicative of a maximum price a respective end-use consumer will pay for the requested quantity of electricity; receiving a plurality of offers for supplying electricity from a plurality of resource suppliers, wherein each of the offers indicates an offered quantity of electricity and a supplier-requested index value indicative of a minimum price for which a respective supplier will produce the offered quantity of electricity; and, using computing hardware, determining a dispatched index value at which electricity is to be supplied. In this embodiment, the act of determining the dispatched index value comprises forming an end-use consumer curve from the requests and a resource supplier curve from the offers; determining that the end-use consumer curve and the resource supplier curve do not intersect; and selecting as the dispatched index value an index value that is higher than an index value of the request with the highest index value. In some implementations, the index value of the request with the highest index value is lower than an index value of the offer with the lowest index value, and the selected dispatched index value is between the index value of the request with the highest index value and the index value of the offer with the lowest index value. For example, the selected dispatched index value can be the average of the index value of the request with the highest index value and the index value of the offer with the lowest index value. In certain implementations, the selected dispatched index value is at a price cap. In some implementations, the method further comprises transmitting the dispatched index value to at least one of the end-use consumers or resource suppliers.

A further exemplary embodiment disclosed herein is another method for operating a resource-allocation market that comprises receiving a plurality of requests for electricity from a plurality of end-use consumers, wherein each of the requests indicates a requested quantity of electricity and a consumer-requested index value indicative of a maximum price a respective end-use consumer will pay for the requested quantity of electricity; receiving a plurality of offers for supplying electricity from a plurality of resource suppliers, wherein each of the offers indicates an offered quantity of electricity and a supplier-requested index value indicative of a minimum price for which a respective supplier will produce the offered quantity of electricity; and, using computing hardware, determining a dispatched index value at which electricity is to be supplied. In this embodiment, the act of determining the dispatched index value comprises computing a quantity of electricity used by end-use consumers that do not respond to the dispatched index value; determining that the offered quantities of electricity only satisfy the quantity used by end-use consumers that do not respond to the dispatched index value; and selecting as the dispatched index value an index value that is higher than the index value of the offer with the highest index value. The dispatched index value can be, for example, a single index value increment above the index value of the offer with the highest index value. In certain implementations, the method further comprises transmitting the dispatched index value to at least one of the end-use consumers or resource suppliers.

Embodiments of the disclosed methods can be performed using computing hardware, such as a computer processor or an integrated circuit. For example, embodiments of the disclosed methods can be performed by software stored on one or more non-transitory computer-readable media (e.g., one or more optical media discs, volatile memory components (such as DRAM or SRAM), or nonvolatile memory or storage components (such as hard drives)). Such software can be executed on a single computer or on a networked computer (e.g., via the Internet, a wide-area network, a local-area network, a client-server network, or other such network). Embodiments of the disclosed methods can also be performed by specialized computing hardware (e.g., one or more application specific integrated circuits (“ASICs”) or programmable logic devices (such as field programmable gate arrays (“FPGAs”)) configured to perform any of the disclosed methods). Additionally, any intermediate or final result created or modified using any of the disclosed methods can be stored on a non-transitory storage medium (e.g., one or more optical media discs, volatile memory or storage components (such as DRAM or SRAM), or nonvolatile memory or storage components (such as hard drives)) and are considered to be within the scope of this disclosure. Furthermore, any of the software embodiments (comprising, for example, computer-executable instructions which when executed by a computer cause the computer to perform any of the disclosed methods), intermediate results, or final results created or modified by the disclosed methods can be transmitted, received, or accessed through a suitable communication means.

The foregoing and other objects, features, and advantages of the invention will become more apparent from the following detailed description, which proceeds with reference to the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic block diagram of a computing environment that can be used to implement embodiments of the disclosed technology.

FIG. 2 is a schematic block diagram of a network topology that can be used to implement embodiments of the disclosed technology.

FIG. 3 is a block diagram of an exemplary resource allocation system that can be nested to any arbitrary depth with consumers making demand requests and producers making supply offers.

FIG. 4 is a block diagram showing a resource consumer who makes demand requests to a local resource allocation system and who consumes the resource based on the dispatched allocation index. The local resource allocation system in FIG. 4 aggegrates the consumer's demand request with other requests.

FIG. 5 is a block diagram showing a resource producer who makes supply offers to a local resource allocation system and who supplies the resource based on the dispatched allocation index. The local resource allocation system in FIG. 5 aggegrates the producer's supply offer with other offers.

FIG. 6 is a flowchart showing a generalized method for clearing offers and requests as can be used in any of the disclosed resource allocation systems.

FIG. 7 is a flowchart showing a general embodiment for computing bids in any of the disclosed recourse allocation system using two-way communications.

FIG. 8 is a flowchart showing another general embodiment for computing bids in any of the disclosed recourse allocation system using two-way communications.

FIG. 9 is a flowchart showing a general embodiment for computing bids in any of the disclosed recourse allocation system using one-way communications.

FIG. 10 is a flowchart showing a general embodiment for generating offer values for use in any of the disclosed recourse allocation systems.

FIG. 11 is a diagram illustrating an example of capacity market buyer and supply curves.

FIGS. 12-23 are diagrams illustrating exemplary market clearing scenarios.

FIG. 24 is a diagram of an exemplary cooling mode bid curve.

FIG. 25 is a diagram of an exemplary heating mode bid curve.

FIG. 26 is a diagram illustrating how an exemplary cooling mode bid curve can conflict with an exemplary heating mode bid curve.

FIG. 27 is a diagram illustrating exemplary cooling mode and heating mode bid curves that have been modified so that no pre-cooling or pre-heating zones are included in the curves.

FIG. 28 is a diagram illustrating exemplary cooling mode and heating mode bid curves that include partial pre-cooling and pre-heating zones that are separated from one another by a fixed temperature difference.

FIG. 29 is a diagram illustrating exemplary cooling mode and heating mode bid curves of a controller operating with the cooling mode as the dominant state.

FIG. 30 is a diagram illustrating exemplary cooling mode and heating mode bid curves of a controller operating with the heating mode as the dominant state.

FIG. 31 is a diagram illustrating exemplary cooling mode and heating mode bid curves of a controller operating with the cooling mode as the dominant state where the pre-heating zone of the heating mode curve is only partially modified.

FIG. 32 is a flowchart of an exemplary method of operating a transactive thermostatic controller.

FIG. 33 is a flowchart of another exemplary method of operating a transactive thermostatic controller.

DETAILED DESCRIPTION I. General Considerations

Disclosed below are representative embodiments of methods, apparatus, and systems for distributing a resource (such as electricity) using a market-based resource allocation system. The disclosed methods, apparatus, and systems should not be construed as limiting in any way. Instead, the present disclosure is directed toward all novel and nonobvious features and aspects of the various disclosed embodiments, alone and in various combinations and subcombinations with one another. Furthermore, any features or aspects of the disclosed embodiments can be used in various combinations and subcombinations with one another. The disclosed methods, apparatus, and systems are not limited to any specific aspect or feature or combination thereof, nor do the disclosed embodiments require that any one or more specific advantages be present or problems be solved.

Although the operations of some of the disclosed methods are described in a particular, sequential order for convenient presentation, it should be understood that this manner of description encompasses rearrangement, unless a particular ordering is required by specific language set forth below. For example, operations described sequentially may in some cases be rearranged or performed concurrently. Moreover, for the sake of simplicity, the attached figures may not show the various ways in which the disclosed methods can be used in conjunction with other methods. Additionally, the description sometimes uses terms like “determine” and “generate” to describe the disclosed methods. These terms are high-level abstractions of the actual operations that are performed. The actual operations that correspond to these terms may vary depending on the particular implementation and are readily discernible by one of ordinary skill in the art. Furthermore, as used herein, the term “and/or” means any one item or combination of items in the phrase.

Any of the disclosed methods can be implemented using computer-executable instructions stored on one or more computer-readable media (e.g., non-transitory computer-readable media, such as one or more optical media discs, volatile memory components (such as DRAM or SRAM), or nonvolatile memory components (such as hard drives)) and executed on a computer (e.g., any commercially available computer). Any of the computer-executable instructions for implementing the disclosed techniques (e.g., the disclosed bid generation, offer generation, or dispatch index generation techniques) as well as any intermediate or final data created and used during implementation of the disclosed resource allocation systems can be stored on one or more computer-readable media (e.g., non-transitory computer-readable media). The computer-executable instructions can be part of, for example, a dedicated software application or a software application that is accessed or downloaded via a network (e.g., through a web browser). More specifically, such software can be executed on a single computer (e.g., any suitable commercially available computer) or in a network environment (e.g., via the Internet, a wide-area network, a local-area network, a client-server network, or other such network).

For clarity, only certain selected aspects of the software-based embodiments are described. Other details that are well known in the art are omitted. For example, it should be understood that the software-based embodiments are not limited to any specific computer language or program. For instance, embodiments of the disclosed technology can be implemented by software written in C++, Java, Perl, JavaScript, Adobe Flash, or any other suitable programming language. Likewise, embodiments of the disclosed technology are not limited to any particular computer or type of hardware. Details of suitable computers and hardware are well known and need not be set forth in detail in this disclosure.

Furthermore, any of the software-based embodiments (comprising, for example, computer-executable instructions which when executed by a computer cause the computer to perform any of the disclosed methods) can be uploaded, downloaded, or remotely accessed through a suitable communication means. Such suitable communication means include, for example, the Internet, the World Wide Web, an intranet, software applications, cable (including fiber optic cable), magnetic communications, electromagnetic communications (including RF, microwave, and infrared communications), electronic communications, or other such communication means.

The disclosed methods can also be implemented by specialized computing hardware that is configured to perform any of the disclosed methods. For example, the disclosed methods can be implemented by an integrated circuit (e.g., an application specific integrated circuit (“ASIC”) or programmable logic device (“PLD”), such as a field programmable gate array (“FPGA”)). The integrated circuit or specialized computing hardware can be embedded in or directly coupled to an electrical device (or element) that is configured to interact with the resource allocation system. For example, the integrated circuit can be embedded in or otherwise coupled to a generator (e.g., a wind-based generator, solar-based generator, coal-based generator, or nuclear generator); an air-conditioning unit; heating unit; heating, ventilation, and air conditioning (“HVAC”) system; hot water heater; refrigerator; dish washer; washing machine; dryer; oven; microwave oven; pump; home lighting system; electrical charger; electric vehicle charger; home electrical system; or any other electrical system having variable performance states.

FIG. 1 illustrates a generalized example of a suitable computing hardware environment 100 in which several of the described embodiments can be implemented. The computing environment 100 is not intended to suggest any limitation as to the scope of use or functionality of the disclosed technology, as the techniques and tools described herein can be implemented in diverse general-purpose or special-purpose environments that have computing hardware.

With reference to FIG. 1, the computing environment 100 includes at least one processing unit 110 and memory 120. In FIG. 1, this most basic configuration 130 is included within a dashed line. The processing unit 110 executes computer-executable instructions. In a multi-processing system, multiple processing units execute computer-executable instructions to increase processing power. The memory 120 may be volatile memory (e.g., registers, cache, RAM), non-volatile memory (e.g., ROM, EEPROM, flash memory), or some combination of the two. The memory 120 stores software 180 for implementing one or more of the described techniques for operating or using the disclosed resource allocation systems. For example, the memory 120 can store software 180 for implementing any of the disclosed dispatch index determination, bidding, or offer strategies described herein and their accompanying user interfaces.

The computing environment can have additional features. For example, the computing environment 100 includes storage 140, one or more input devices 150, one or more output devices 160, and one or more communication connections 170. An interconnection mechanism (not shown) such as a bus, controller, or network interconnects the components of the computing environment 100. Typically, operating system software (not shown) provides an operating environment for other software executing in the computing environment 100, and coordinates activities of the components of the computing environment 100.

The storage 140 can be removable or non-removable, and includes magnetic disks, magnetic tapes or cassettes, CD-ROMs, DVDs, or any other tangible non-transitory storage medium which can be used to store information and which can be accessed within the computing environment 100. The storage 140 can also store instructions for the software 180 implementing any of the described techniques, systems, or environments.

The input device(s) 150 can be a touch input device such as a keyboard, mouse, touch screen, pen, or trackball, a voice input device, a scanning device, or another device that provides input to the computing environment 100. The output device(s) 160 can be a display, printer, speaker, CD-writer, or another device that provides output from the computing environment 100.

The communication connection(s) 170 enable communication over a communication medium to another computing entity. The communication medium conveys information such as computer-executable instructions, resource allocation messages or data, or other data in a modulated data signal. A modulated data signal is a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired or wireless techniques implemented with an electrical, optical, RF, infrared, acoustic, or other carrier.

The various methods, systems, and interfaces disclosed herein can be described in the general context of computer-executable instructions stored on one or more computer-readable media. Computer-readable media are any available media that can be accessed within or by a computing environment. By way of example, and not limitation, with the computing environment 100, computer-readable media include tangible non-transitory computer-readable media, such as memory 120 and storage 140.

The various methods, systems, and interfaces disclosed herein can also be described in the general context of computer-executable instructions, such as those included in program modules, being executed in a computing environment on a target processor. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, and the like that perform particular tasks or implement particular abstract data types. The functionality of the program modules may be combined or split between program modules as desired in various embodiments. Computer-executable instructions for program modules may be executed within a local or distributed computing environment.

II. Exemplary Network Topology for Implementing a Resource Allocation Market

An example of a network topology for implementing a resource allocation market 200 according to the disclosed technology is depicted in FIG. 2. Networked computing devices 220, 222, 230, 232, 250 can be, for example, computing devices having computing hardware that runs software for accessing one or more central computers 210 or that are otherwise configured to communicate with the one or more central computers 210. The one or more central computers 210 in the illustrated embodiment manage and operate the resource allocation market 200. For example, the one or more central computers 210 can be associated with an operator who manages an electrical transmission network that serves or is served by electrical loads or resources associated with the computing devices 220, 222, 230, 232, 250. For instance, the one or more central computers 210 can be associated with a distribution substation, a sub-transmission substation, a transmission substation, or other such transmission node in a power transmission network.

The computing devices 220, 222, 230, 232, 250 and the central computer 210 can have computer architectures as shown in FIG. 1 and discussed above. The computing devices 220, 222, 230, 232, 250 are not limited to traditional personal computers or servers but can comprise other computing hardware configured to connect to and communicate with a network 212 (e.g., specialized computing hardware associated with an electrical device or a power generator (e.g., hardware comprising an integrated circuit (such as an ASIC or programmable logic device) configured to perform any of the disclosed methods)).

In the illustrated embodiment, the computing devices 220, 222, 230, 232, 250 are configured to connect to one or more central computers 210 (e.g., via network 212). In certain implementations, the central computer receives resource bids or requests from those computing devices associated with resource consumers (e.g., devices 220, 222) and receives resource offers from those computing devices associated with resource suppliers (e.g., devices 230, 232, 250). The one or more central computers 210 then compute a value at which the resource is to be dispatched (e.g., using a double auction technique) and transmit this dispatched value to the computing devices 220, 222, 230, 232, 250. When this dispatched value refers to the actual price of the resource, it is sometimes referred to as the “real-time price” and indicates the clearing price of the current time interval or of the next upcoming time interval (e.g., the imminent time interval). In some implementations, this price is also known as the real-time locational marginal price. The time intervals can vary, but in certain implementations is less than one hour (such as 30 minutes or less, 15 minutes or less, 10 minutes or less, 5 minutes or less, or any other interval).

The one or more central computers 210 can also transmit additional data to one or more of the computing devices 220, 222, 230, 232, 250. The additional data can be used by the computing devices 220, 222, 230, 232, 250 to compute a demand bid or supply bid. For example, the additional data can include price information from a forward-looking or futures market (e.g., price information from a day-ahead market).

For example, the price can be price information for the same interval as the current interval or the next upcoming interval but in the following day (e.g., a price from the day-ahead market, such as a day-ahead locational marginal price). The price information from the futures market may not be available in the same duration of time interval as the real-time price (e.g., the day-ahead price may apply to a longer interval (such as 1 hour) when compared to the interval of the real-time price information) but can overlap with the current interval or the next upcoming interval. For purposes of this disclosure, the price information from a forward-looking or futures market is generally referred to herein as a “future price.”

The price information from a futures market is typically available from power transmission entities or other power industry entities that maintain or participate in a forward-looking market, and most commonly refers to price information from the day-ahead market but can be price information from a market for other future time periods (e.g., for a future time period other than the next upcoming time interval in the relevant resource allocation system for which a dispatch value is being computed). Briefly, the day-ahead market refers to a financial market where market participants purchase and sell energy at financially binding day-ahead prices for the following day. As a result of the day-ahead market, a financially binding schedule of commitments for the purchase and sale of energy is developed each day based on the bid and offer data submitted by the market participants. The day-ahead market allows buyers and sellers to lock in their price and hedge against volatility in the real-time energy market. Examples of such day-ahead markets include the day-ahead market operated by PJM Interconnection LLC.

In the embodiment illustrated in FIG. 2, the price information from a futures market (e.g., the day-ahead market information) is accessed and received by the one or more central computers 210 from a provider 250 (e.g., a regional transmission provider or transmission provider at the next highest hierarchical level in the transmission network). Furthermore, as shown in the illustrated embodiment, the provider 250 is itself a resource supplier that bids an offer to the market resource allocation market 200. For example, the provider 250 can be a regional transmission provider that offers electricity at a wholesale price to the resource allocation market 200 operated by the one or more central computers 210.

In still further embodiments, the additional information may include information computed from the real-time price information and/or from the price information from the futures market. For example, in particular implementations, the additional information is used to compute other derivative values at the one or more central computers 210 that are then transmitted to the computing devices 220, 222, 230, 232, 250. For example, and as more fully explained below, an average price and/or a standard deviation can be computed from the real-time price or from the price information from the futures market. The average price can be computed from prices of adjacent intervals (e.g., prices in the preceding m intervals) or from prices at the same interval from earlier days (e.g., prices from the same interval (such as the one hour interval beginning at 9:00 p.m.) from the preceding n days). The average price and/or standard deviation can then be transmitted to the computing devices 220, 222, 230, 232, 250. In still other embodiments, a single price deviation value can be computed by dividing the average of the real-time prices or the future prices over some interval and dividing by the standard deviation (e.g., the value can be the average/standard deviation) or by dividing the difference between the cleared real-time or futures price and the average of the real-time or future prices over some interval and dividing by the standard deviation (e.g., P_(dev)=(P_(clear)−P_(average))/σ_(actual)). This price deviation, called v, corresponds to the number of standard deviations the real-time price or future price is from the average price and, in some embodiments, can be the only signal used to control the system. In still further embodiments, one or more of the computing devices 220, 222, 230, 232, 250 themselves compute the other derivative values from the real-time price information, the future price information, or both the real-time price information and the future price information.

Examples of how market information from a futures market can be used in market-based resource allocation systems are described in further detail in U.S. Nonprovisional application Ser. No. 13/096,682, filed on Apr. 28, 2011 concurrently herewith, and entitled “FORWARD-LOOKING TRANSACTIVE PRICING SCHEMES FOR USE IN A MARKET-BASED RESOURCE-BASED ALLOCATION SYSTEM,” which is hereby incorporated herein by reference. Furthermore, although FIG. 2 shows additional price information from a futures market being used, it should be understood that the use of future market information is not necessary and that certain embodiments of the disclosed technology use only market information from the local market. Additionally, although the information shown as being exchanged in FIG. 2 is identified as price information, the information may be generalized to information that is indicative of a price or relates to an index that is capable of being monetized. For example, the real-time price can be a real-time dispatched index value, and the price information from a futures market can be dispatched index values from a futures market.

In the illustrated embodiment, the one or more central computers 210 are accessed over a network 212, which can be implemented as a Local Area Network (“LAN”) using wired networking (e.g., the Ethernet IEEE standard 802.3 or other appropriate standard) or wireless networking (e.g. one of the IEEE standards 802.11a, 802.11b, 802.11g, or 802.11n or other appropriate standard). Furthermore, at least part of the network 212 can be the Internet or a similar public network. The one or more central computers 210 can be located at a transmission node for the resource allocation market itself (e.g., at a distribution substation, sub-transmission substation, transmission substation, or other transmission node locale) or can alternatively be located remotely (e.g., at a centralized location that is responsible for managing and operating multiple resource allocation markets).

The various possible roles and functionalities of the computing devices 220, 222, 230, 232, 250 and the one or more central computers 210 will be described in more detail in the following sections.

III. Embodiments of the Disclosed Resource Allocation Scheme

A. General Case of a Nested, Hierarchical Resource Allocation Schema

FIG. 3 is a schematic block diagram illustrating an embodiment of a resource allocation system 300 according to the disclosed technology. In the embodiment shown in FIG. 3, system 300 comprises multiple nested resource allocation systems (two of which are shown as subsystems 310 and 312 and which can operate using the network topology illustrated in FIG. 2), which themselves comprise self-similar resource allocation subsystems. The resource allocation system 300 can be nested to any arbitrary depth with net producers (such as net producer 320) making supply offers and net consumers (such as net consumer 322) making demand requests to a larger bulk system 340. In certain embodiments, the system 300 does not include nested subsystems, but comprises a single-level system in which a central system (e.g., a distribution service provider) communicates with consumers and suppliers that have no nested subsystems. Any of the nested subsystems can operate using a network topology such as that shown in FIG. 2 for operating a local resource allocation market.

All resources that are limited in some manner and can be measured can be allocated independently in such a system. The embodiments disclosed herein generally concern applying the resource allocation system 300 to an electrical power grid in which electrical power is limited, but it is to be understood that this application is not limiting. The resource allocation system can be used in other contexts as well, including water supply, Internet wireless bandwidth distribution, or other such markets having limited resources.

In the illustrated embodiment, each of the resource allocation markets operates by periodically collecting demand requests from consumers and supply offers from resource suppliers and determining an index value (e.g., a “price” or “cleared price”) at which the resource allocation is to be dispatched. As more fully explained below, the dispatched index value is determined from the demand requests and supply offers. In one particular embodiment, the process is different than traditional markets in that an index that is capable of being monetized (rather than just a currency value itself) is used. The index provides a common valuation method for participants in the system. For ease of presentation, reference will sometimes be made in this disclosure to the index for a resource as though it were the actual price of the resource. It is to be understood that such reference includes not only the situation where the index is the currency, but also the situation where the index is another index unit that is capable of being monetized or traded.

B. Participants and Accounts

In one embodiment of the disclosed technology, at least some of the participants in the system have accounts in which the fund of index units at their disposal is kept. As consumers use resources, their index fund balances are debited, and as producers deliver resources, their index fund balances are credited. Index funds can be credited using a variety of mechanisms, including up-front deposits (e.g., through incentives), periodic deposits (e.g., with income), or purchased funds from a separate index fund market when producers sell funds.

C. Supply Offers and Demand Requests

In one exemplary embodiment of the disclosed technology, end-use consumers use computing devices (e.g., transactive controllers or active controllers) to request resources from their local distribution service provider based on their current needs (e.g., the needs of the appliances or electrical devices in the consumer's residence or business). For example, end-use consumers can input their resource requests through a web site that transmits the user's requests over the Internet to one or more central computers that are used by the distribution service provider to allocate the resource. In such instances, the requests can be computed and transmitted by executing computer-executable instructions stored in non-transitory computer-readable media (e.g., memory or storage). Alternatively, a consumer's end-use appliances or electrical devices can be configured to themselves compute the resource requests (in which case the appliance or device can be considered as the end-use consumer or resource consumer). In such instances, the requests can be computed using computing equipment (e.g., a transactive controller or active controller) embedded in the appliances or electrical devices themselves. In still another embodiment, computing equipment at the consumer's residence or locale can collect information from one or more of the consumer's appliances or electrical devices and transmit aggregated requires to the local distribution service provider.

The computing equipment can comprise a computer system (e.g., a processor and non-transitory computer-readable media storing computer-executable instructions) or can comprise a specialized integrated circuit (e.g., an ASIC or programmable logic device) configured to compute the resource request or offer. If the requests are computed by the appliances or electrical devices themselves, the requests can be directly sent to the one or more central computers of the distribution service provider (e.g., via the Internet) or can be aggregated with other requests (e.g., using a computer or other computing equipment at the consumer's home). For instance, the appliances and electrical devices at the consumer's home can transmit their requests (e.g., wirelessly using Wi-Fi or the like) to a local computer, or a computer-based home energy management system (“HEMS”), which aggregates the requests. The aggregated requests can then be sent together to the distribution service provider (e.g., as a single request to the central computer or as a single message comprises a string of requests).

In one exemplary embodiment, resource requests comprise at least two pieces of information: the quantity of the resources desired (described, for example, as a rate of consumption for the time frame over which the resource will be allocated) and the requested index value. In some embodiments, the requested index value is the maximum index value at which the quantity will be consumed. Desirably, resource consumers submit at least one such request for each time frame in which they wish to consume, and the time frame is determined by the local distribution service provider. The time frame can vary from embodiment to embodiment, but in some embodiments is 60 minutes or less, 15 minutes or less, or 5 minutes or less, and some embodiments can use mixed time and/or overlapping frames. As more fully explained below, the time frame can depend on the size of the resource allocation system and the number of nested resource allocation markets within the overall system. In general, the time frame used in a lower-level system in a nested framework will be less than the time frame for a higher-level system in the nested framework. After receiving such requests within the time frame, the local distribution service provider can compute and dispatch the index value at which each resource is allocated. This value is sometimes referred to herein as the “dispatched index value” or “dispatched value.” In applications where the value is the actual price, this value is sometimes referred to herein as the “settled price,” “clearing price,” or “real-time price”

In one exemplary embodiment, resource suppliers use computing devices (e.g., transactive controllers) to submit offers for resources to the local distribution service provider based on the current cost of providing the resources. Resource suppliers can include, for example, utility substations at the same or higher transmission level (e.g., transmission substations, subtransmission substations, or distribution substations), merchant generators (e.g., large-scale power generators using coal-, nuclear-, wind-, solar-, hyro-, or geothermal-based power generation), local generators (e.g., diesel generators or smaller scale solar or wind generators) or consumer-based generators (e.g., electric vehicles). For example, the supply offers can be computed and submitted over the Internet using a computer system (e.g., using a dedicated web site). Alternatively, the supply offer can be computed and transmitted using a specialized integrated circuit configured to compute the resource offer (e.g., an ASIC or programmable logic device). Any such computing hardware can be coupled directly to and provide control over the relevant equipment for supplying the resource. For instance, the computing hardware can be integrated with the control equipment for an electrical power generator, thereby allowing the computing hardware to directly activate and deactivate the generator as needed.

In one exemplary embodiment, offers comprise at least two pieces of information: the quantity of the resources available (described, for example, as a rate of production for the time frame over which the resource will allocated) and the requested index value for the quantity of the resource. In some embodiments, the requested index value is the minimum index value at which the resource will be produced. Producers desirably submit at least one such offer for each time frame in which they wish to produce resources, and the time frame is determined by the service provider.

In one exemplary embodiment for operating the resource allocation system, consumers are required to consume the resources which they requested only if they requested the resource at an index value greater than or equal to the dispatched index value. Conversely, consumers are prohibited from consuming the resources if they requested the resource at an index value less than the dispatched index value for that time frame. These rules can be enforced, for example, at the appliance or electrical device level (e.g., using appropriate shut-off hardware) or enforced by control signals sent from a computer at the consumer's home or locale to the relevant appliance or electrical equipment. Violation of these rules can be subject to a penalty (e.g., a penalty levied against the offender's index fund account). Furthermore, in some embodiments of the disclosed technology, consumers can submit unconditional requests that require the distribution service provider to deliver the resource at any price, and require the consumer to accept it at any price.

Similarly, in one exemplary embodiment for operating the resource allocation system, producers are required to produce the resources which they offered only if they offered the resource at an index value less than or equal to the dispatched index value. Conversely, producers are prohibited from producing resource if they offered the resource at an index value greater than the dispatched index value for that time frame. Violation of the rules can be subject to a penalty levied against their index fund accounts. Furthermore, in some embodiments of the disclosed technology, producers can submit unconditional offers that require the distribution service provider to accept the resource at any price, and require the producer to supply it at any price.

D. Aggregation Services

In certain embodiments of the disclosed technology, and as noted above, a service provider may in turn be a consumer or producer with respect to another service provider, depending on whether they are a net importer or exporter of resources. Examples of such arrangements are shown in block diagrams 400 and 500 of FIGS. 4 and 5, respectively. In particular, FIG. 4 is a diagram 400 showing a local resource consumer 410 that makes demands on a local distribution service provider 412 (e.g., a local feeder), who in turn aggregates local requests to make an aggregated bulk request to a service provider at the next-higher level in the hierarchy. In the illustrated embodiment, the service provider at the next-higher level is a bulk distribution service provider 414 (e.g., a regional distribution service provider), but can be another higher-order service provider in the system (e.g., a subtransmission substation, transmission substation, or other such provider).

FIG. 5 is a diagram 500 showing a local producer 510 that makes offers to a local distribution provider 512 (e.g., a local feeder), who in turn aggregates local offers to make an aggregated offer to a service provider at a next-higher level in the hierarchy. In the illustrated embodiment, the service provider at the next-higher level is a bulk distribution provider 514 (e.g., a regional distribution service provider), but can be another higher-order service provider in the system (e.g., a subtransmission substation, transmission substation, or other such provider).

Any number of service providers can be combined to construct a system of arbitrary size and complexity.

In certain embodiments of the disclosed technology, producers and consumers can make non-firm offers and requests as well, but such requests can have an index premium with respect to the firm offers and requests presented during a given time frame. The premium can be based, for example, on the difference between the aggregate cost of load following in the service providers system and the cost the same in the bulk system (load following service cost arbitrage).

E. Multiple Time Frames

As resources are aggregated to larger and larger system, the time frame over which allocation is performed can be lengthened. For example, the lowest-level localized resources (e.g., feeder-level resources) might be dispatched on a 5 minute time frame, mid-level resources (e.g., regional-level or transmission-level resources) might be dispatched on a 15 minute time frame, and highest-level resources (e.g., bulk-grid-level resources) transmission resources might be dispatched on a 1 hour time frame. This permits aggregators to also aggregate over time by exchanging or moving blocks of resources across time frames using storage capacities and ramp rates.

Both consumers and producers can break their total demand and supply into multiple requests and offers spanning multiple time frames. For example, in the face of 10% uncertainty (or other percentage of uncertainty) in the quantity needed, a consumer can request the mean quantity of the needed resources in a longer time frame at any price and exchange (buy or sell) the remaining 10% fluctuation (or other percentage of fluctuation) in a shorter time frame at any price.

Additionally, in certain embodiments, bids can be submitted to the higher-level markets for resources that are to be supplied during one or more future time frames that are not imminent (e.g., time frames that occur during the following day, following two days, following week, or any such future time frame). Such bids for future time windows can be in addition to the bid for the next time interval and can be used to help secure power and settle the bulk-resource market in advance of the actual power needs. In some implementations, such bids for future time windows indicate a future energy need (kWh) rather than an imminent current power need (kW).

F. An Exemplary Resource Allocation Strategy

In each time frame, and at one or more of the hierarchical levels of the resource allocation system, the dispatched index value and quantity allocated is determined by a resource allocation service. The resource allocation service can be implemented by one or more computing devices at each level of the system and according to a network topology such as that shown in FIG. 2. Furthermore, the resource allocation service can be implemented using computer-executable instructions stored on one or more computer-readable media (e.g., non-transitory computer-readable media, such as storage or memory) which when executed by a computer will cause the computer to perform a resource allocation method, such as any of the techniques described below.

A wide variety of methods can be used to determine the dispatched index value. In certain embodiments, however, the dispatched index value is determined using a double auction technique. For instance, in one particular embodiment, the following technique is used. The requests and offers are separated into two groups. Each group is sorted by the index value provided, requests being sorted by descending value, and offers by ascending value (or vice versa). Next, each item in the sorted lists is given a quantity level computed by adding its quantity to the previous item's quantity level, with the first items quantity level being its quantity alone. Finally, the dispatched index value is found by determining the index value at which the same quantity level for requests and offers occurs. In one embodiment, this can occur in one of two ways. Either two requests bind a single offer, in which case the supplier is required to supply less than the offered quantity and the offer index value is the dispatched index value; or two offers bind a single request, in which case the consumer is required to consume less than the requested quantity with only partial resources and the request index value is the dispatched index value. Additionally, there are some special cases that although rare are desirably handled explicitly. Whenever both consumers and suppliers mutually bind each other at a given quantity level, the dispatched index value can be the mean of the offer and request indexes, the request index, or the offer index. In certain embodiments, the method that maximizes the total benefit (e.g., profit) to both consumers and producers is chosen and in cases where more than one index level maximizes the total benefit, the index level which most equitably divides the total benefit between consumers and producers is chosen. Exemplary market clearing scenarios are discussed in greater detail below in Section III.M.

FIG. 6 is a flowchart 600 showing a generalized method for clearing offers and requests as can be used in any of the disclosed resource allocation systems. The particular method shown in FIG. 6 is for a system for allocating electricity resources, but this usage should not be construed as limiting. The method can be performed using computing hardware (e.g., a computer processor or a specialized integrated circuit). For instance, the method can be performed by computing hardware such as shown in FIG. 1 that manages the resource allocation market for a particular subsystem or in the resource allocation scheme.

At 610, a plurality of requests for electricity are received from a plurality of resource consumers (e.g., electrical devices, home consumers, or other electrical service providers in the hierarchy). The requests can comprise data messages indicating a requested quantity of electricity and a consumer-requested index value (e.g., a maximum price a respective electrical-power user will pay for the requested quantity of electricity.

At 612, a plurality of offers for supplying electricity are received from a plurality of resource suppliers (e.g., local generators, merchant generators, or other electrical service providers in the hierarchy, such as service providers at the next-highest hierarchical level). The offers can comprise data messages indicating an offered quantity of electricity and a supplier-requested index value (e.g., a minimum bid price for which a respective supplier will produce the offered quantity of electricity).

At 614, a dispatched index value is computed at which electricity is to be supplied based at least in part on the consumer-requested index values and the supplier-requested index values. In some implementations, the act of determining the dispatched index value is performed using a double auction method. For example, the act of determining the dispatched index value can comprise separating the requests and the offers into two groups, sorting each item in the two groups according to a quantity level, and determining the dispatched index value by determining the index value at which the same quantity level for requests and offers occurs.

At 616, the dispatched index value is transmitted to at least one of the consumers or resource suppliers (e.g., using suitable communication means, such as the Internet or other network). In certain embodiments, additional information is transmitted with the dispatch index value. As noted above with respect to FIG. 2, the additional information can include price information from a futures market (e.g, day-ahead price information). Furthermore, in certain embodiments, other values can also be transmitted, such as values derived from the dispatched index value (e.g., an average and standard deviation of the dispatched index value over a selected time frame) or values derived from the price information from the futures market (e.g., an average and standard deviation of the day-ahead price).

Methods acts 610, 612, 614, and 616 can be repeated at periodic intervals (e.g., intervals of 60 minutes or less, 10 minutes or less, 5 minutes or less, or other such interval). Furthermore, it should be understood that the method acts 610 and 612 do not necessarily occur in the illustrated sequence. Instead, the orders and requests can be received substantially simultaneously. For instance, the orders and requests can be received at various times and/or orders within a given time period and before the dispatched index is determined.

G. Demand Strategies

In some cases, suppliers or consumers desirably place offers or bids that nearly guarantee that they obtain consumers or suppliers, respectively. To help generate an offer or request that has a high likelihood of being accepted by the local resource allocation system, a supplier or consumer can use a recent history of dispatched index values from the local market and/or a recent history of the dispatched index values from a futures market (e.g., a day-ahead market) to forecast the most likely dispatched index value for a particular offer or request time frame and to adjust the offer or request based on this information. This ability to adjust a request or offer allows a consumer or supplier to utilize an adaptive bidding or offer strategy. As more fully illustrated below, such adaptive strategies are useful in a variety of settings.

One possible adaptive request strategy is to compute the average and the standard deviation of the dispatched index values from the local market and/or the local dispatched index values from the futures market (e.g., the prices from the day-ahead market) over the last N time frames, where N is a relatively large number compared to the time frame (e.g., 20, 50, 100 or more). When consumers cycle their demand for resources periodically, they can adjust the consumption time to exploit times when the index is low. In one particular embodiment, the control decision for consumption can be offset by the computed average (or a weighted function of two or more computed averages (such as averages of the dispatched index values from the local market and dispatched index values from the futures market)) and scaled by the computed standard deviation (or a weighted function of two or more computed standard deviations (such as standard deviations of the dispatched index values from the local market and dispatched index values from the futures market)) before being submitted to the resource allocation system.

In some embodiments, the last N time frames that are used are consecutive time frames. For instance, if N is selected to account for the previous 24 hours, if the duration of a time frame is 5 minutes, and if the current time frame is 3:00 p.m., then the dispatched index value from the 3:00 p.m. time frame the previous day, the index from the 3:05 p.m. time frame the previous day, the index from the 3:10 p.m. time frame the previous day, and so on, can be used. In other embodiments, the last N time frames that are used are from the same time frame (or similar time frame) as the current time frame but are from different days (e.g., consecutive prior days). For instance, if N is selected to account for the previous 7 days, if the duration of a time frame is 5 minutes, and if the current time frame is 3:00 p.m., then the dispatched index value from the 3:00 p.m. time frame from the previous 7 days can be used. Various combinations of these time frames can also be used (e.g., the index values for multiple time frames around the current time frame from multiple previous days). This flexibility can help further account for variations in demand that arise throughout a day.

Many consumers that employ adaptive control also use a similar strategy to determine the operating point from the dispatched index value. This can be done by adjusting the control set point based on the dispatched index value.

The following paragraphs introduce general embodiments for generating bid values in a resource allocation system, such as any of the resource allocation systems disclosed herein. Specific implementations of these generalized embodiments are introduced in Section IV below.

FIG. 7 is a flowchart 700 showing a generalized embodiment for computing bids in any of the disclosed recourse allocation system using two-way communications (e.g., a transactive controller). The particular method shown in FIG. 7 is for an electrical device in a system for allocating electrical resources, but this usage should not be construed as limiting. The electrical device can be a variety of devices, such as an air-conditioning unit; heating unit; heating, ventilation, and air conditioning (HVAC) system; hot water heater; refrigerator; dish washer; washing machine; dryer; oven; microwave oven; pump; home lighting system; electrical charger; electric vehicle charger; home electrical system; or any other electrical system having variable performance states. The method of FIG. 7 can be performed using computing hardware (e.g., a computer processor or an integrated circuit). For instance, the method can be performed by a computer at an end-user's locale or home, a computer coupled to an electrical device, or by specialized hardware (e.g., an ASIC or programmable logic device) coupled to the electrical device. Furthermore, it should be understood that the method acts in FIG. 7 do not necessarily occur in the illustrated sequence.

At 710, a desired performance value indicative of a user's desired performance level for an electrical device is received (e.g., loaded, buffered into memory, or otherwise input and prepared for further processing). For example, a desired temperature for a temperature-controlled environment can be received.

At 712, one or more user tolerance values indicative of the user's willingness to tolerate variations from the desired performance level are also received (e.g., loaded, buffered into memory, or otherwise input and prepared for further processing). For example, a comfort setting reflective of comfort versus economy (such as any of the comfort settings shown in Table 2 below or similar comfort setting) can be received. In certain embodiments, the user tolerance value is selected from at least a first tolerance value and a second tolerance value, the first tolerance value resulting in higher bid values relative to the second tolerance value. The comfort setting can comprise a single value that is representative of the user's tolerance, or can comprise multiple values that represent upper and/or lower limits of the performance of the electrical device (e.g., a low temperature and a high temperature). The performance value and user tolerance value can be input by the user, for example, through an appropriate graphical user interface displayed on a computer or through a keypad, touch screen, dial, or other control mechanism associated with the electrical device.

At 714, a bid value for purchasing electricity sufficient to operate the electrical device at the desired performance level is computed. In the illustrated embodiment, the bid value is based at least in part on the desired performance value and the user tolerance value. The bid value can be additionally based at least in part on one or more values indicative of dispatched index values for the local market (the market to which the bid value will be submitted). The dispatched index values from the local market can be, for example, the dispatched index values from a previous time period (e.g., the previous 3 hours) and can be updated on a rolling window basis. In some embodiments, the bid value can be additionally based at least in part on one or more values indicative of the dispatched index values from a futures market (e.g., prices from a day-ahead market). The dispatched index values from the futures market can be, for example, the day-ahead prices for the current day (e.g., a blocked 24-hour window). In certain embodiments, the bid value is based on a combination of the dispatched index values from the futures market and the dispatched index values from the local market (e.g., a weighted combination). Any of these values can be computed locally at the electrical device, or can be transmitted from the one or more central computers.

Additionally, the bid value can be based on an average and/or a standard deviation of the dispatched index values from the local market. Likewise, the bid value can be based on an average and/or a standard deviation of the dispatched index values from the futures market, or some combination of the averages and/or standard deviations. In alternative embodiments, a single dispatched value from the local market (e.g., the most recently dispatched value) and/or a single dispatched index value from a futures market is used. In still other embodiments, a value other than the average or standard deviation is derived from the multiple available values and used to perform the method (e.g., a median value, weighted sum, or other such derived value). Any of these values can be computed locally at the electrical device, or can be transmitted from the one or more central computers. In further embodiments, a current performance level of the electrical device can also be received. In such embodiments, the bid value can also be based at least in part on the current performance level.

At 716, the bid value is transmitted to one or more central computers (e.g., one or more computers that manage and operate a local resource allocation market by, for instance, conducting the auction process for the market) in the market-based resource allocation system (e.g., using suitable communication means, such as the Internet or other network). In certain embodiments, the quantity of the resources desired (described, for example, as a rate of consumption for the time frame over which the resource will be allocated) is also transmitted to the one or more central computers. Additionally, in some embodiments, the current state of the electrical device associated with the bid is also transmitted to the one or more central computers (e.g., as a value that indicates whether the electrical device is current on (or active) or off (or inactive)). As more fully explained below, this state information can be used by the operator of the resource allocation market to determine the nonresponsive load that is serviced by the local resource allocation market.

At 718, an indication of a dispatched index value for a current (or next upcoming) time frame is received from the one or more central computers. In certain embodiments, a value other than the dispatched value is received from the one or more central computers but which is indicative of the dispatched value. For example, the value can indicate a difference between a last dispatched value and a newly dispatched value. As noted, the one or more central computers can transmit other information as well (e.g., one or more of dispatched index value(s) from a futures market, averages of the dispatched index values from the local market and/or the futures market, or standard deviations of the dispatched index values from the local market and/or the futures market).

At 720, the bid value is compared to the dispatched value for the current (or next upcoming) time frame, and a signal is generated to activate or deactivate the electrical device based on this comparison (e.g., if the bid value is equal to or exceeds the dispatched value for the current time frame, a signal to activate is generated; otherwise, a signal to deactivate is generated).

Any combination or subcombination of the disclosed method acts can be repeated after a fixed period of time (e.g., a time period of 15 minutes or less, 5 minutes or less, or other such time period). In certain embodiments, some of the received values are reused for subsequent time frames. For example, the user-selected performance value and user tolerance value can be stored and reused for subsequent time frames. In such instances, method acts 710 and 712 need not be repeated.

FIG. 8 is a flowchart 800 showing another generalized embodiment for computing bids in any of the disclosed recourse allocation system using two-way communications (e.g., through transactive controllers). The method in FIG. 8 can be performed by computing devices like those mentioned above with respect to FIG. 7. Likewise, the bids computed by the method in FIG. 8 can be associated with electrical devices like those mentioned above. In one particular embodiment, the electrical device is a pump.

At 810, an indication of a current status of a system controlled by an electrical device is received. For example, if the electrical device is a pump, the current status of the system can be a measurement of a water level affected by the pump.

At 812, a bid value for purchasing electricity sufficient to operate the electrical device is computed. In the illustrated embodiment, the bid value is based at least in part on the current status of the system and on one or more additional values. The additional values can comprise, for example, any one or more of the values discussed above with respect to FIG. 7 (e.g., one or more of dispatched index values from a local market, dispatched index values from the futures market, averages of the dispatched index values from the local market and/or the futures market, or standard deviations of the dispatched index values from the local market and/or the futures market). Any of these values can be computed locally at the electrical device, or can be transmitted from the central computer. In some embodiments, a user comfort setting and/or desired performance level selected by a user (e.g., a user comfort setting and/or desired performance level as explained above with respect to FIG. 7) is also received. In these embodiments, the bid value is additionally based at least in part on the user comfort setting.

At 814, the bid value is transmitted to one or more central computers (e.g., one or more computers that manage and operate a local resource allocation market by, for instance, conducting the auction process for the market) in the market-based resource allocation system (e.g., using suitable communication means, such as the Internet or other network). In certain embodiments, the quantity of the resources desired (described, for example, as a rate of consumption for the time frame over which the resource will be allocated) is also transmitted to the one or more central computers. Additionally, in some embodiments, the current state of the electrical device associated with the bid is also transmitted to the one or more central computers.

At 816, an indication of a dispatched value for a current (or upcoming) time frame is received from the one or more central computers. In certain embodiments, a value other than the dispatched value but which is indicative of the dispatched value is received. For example, the value can indicate a difference between a last dispatched value and a newly dispatched value. As noted, the one or more central computers can transmit other information as well (e.g., one or more of dispatched index value(s) from a futures market, averages of the dispatched index values from the futures market and/or the local market, or standard deviations of the dispatched index values from the futures market and/or the local market).

At 818, the bid value is compared to the dispatched value for the current (or upcoming) time frame, and a signal is generated to activate or deactivate the electrical device based on this comparison (e.g., if the bid value is equal to or exceeds the dispatched value for the current time frame, a signal to activate is generated; otherwise, a signal to deactivate is generated).

Any combination or subcombination of the disclosed method acts can be repeated after a fixed period of time (e.g., a time period of 15 minutes or less, 5 minutes or less, or other such time period). In certain embodiments, some of the received values are reused for subsequent time frames. For example, the user comfort setting can be stored and reused for subsequent time frames.

FIG. 9 is a flowchart 900 showing a general embodiment for computing bids in any of the disclosed recourse allocation system using one-way communications (e.g., using an active controller). The particular method shown in FIG. 9 is for an electrical device in a system for allocating electrical resources, but this usage should not be construed as limiting. The electrical device can be a variety of devices, such as an air-conditioning unit; heating unit; heating, ventilation, and air conditioning (“HVAC”) system; hot water heater; refrigerator; dish washer; washing machine; dryer; oven; microwave oven; pump; home lighting system; electrical charger; electric vehicle charger; home electrical system; or any other electrical system having variable performance states. The method of FIG. 9 can be performed using computing hardware (e.g., a computer processor or an integrated circuit). For instance, the method can be performed by a computer at an end-user's locale or home, a computer coupled to an electrical device, or by specialized hardware (e.g., an ASIC or programmable logic device) coupled to the electrical device. Furthermore, it should be understood that the method acts in FIG. 9 do not necessarily occur in the illustrated sequence.

At 910, one or more user tolerance setting selected by a user is received. For example, a user comfort setting as described above with respect to FIG. 7 can be received. The user tolerance value can be input by the user, for example, through an appropriate graphical user interface displayed on a computer or through a keypad, touch screen, dial, or other control mechanism associated with the electrical device.

At 912, market information is received. For example, the market information can be transmitted from the one or more central computers. The market information can include information about the dispatched index value for the local market (e.g., the price in the local market for the most recent time period or the next upcoming time period) and/or information about the dispatched index value from a futures market (e.g., the price from a day-ahead market).

At 914, a probability value of operating the electrical device is computed based on at least the user comfort setting and one or more additional values. The additional values can comprise, for example, any one or more of the values discussed above with respect to FIG. 7 (e.g., one or more of the average and/or standard deviation of historical dispatch values of the local market, historical dispatch values from other levels or markets within the resource allocation system, and/or the dispatch values of a futures market). Any of these values can be computed locally at the electrical device, or can be transmitted from the one or more central computers.

At 916, a determination is made as to whether to operate the electrical device using the probability value, and a signal is generated to cause the electrical device to operate based on this determination. In some implementations, for instance, a random number is generated, which is compared to the probability value. If the random number is less than (or in some embodiment greater than) the probability value, then the signal for causing the electrical device to operate is generated; otherwise, a signal for causing the electrical device to deactivate can be generated.

Any combination or subcombination of the disclosed method acts can be repeated after a fixed period of time (e.g., a time period of 15 minutes or less, 5 minutes or less, or other such time period). In certain embodiments, some of the values are reused for subsequent time frames. For example, the user comfort setting can be stored and reused for subsequent time frames.

H. Supply Strategies

Suppliers can consider many factors when computing their offer index value. For example, if there is a production start-up cost, it can be spread over a minimum of M time frames using the formula:

$\begin{matrix} {{index} = {{variable} + \frac{startup}{M \cdot {capacity}}}} & (1) \end{matrix}$

where index is the index value of the offer, variable is the time-dependent index value, startup is the index value of starting production, and capacity is the total production capacity of the unit. The variable term can correspond to or be computed from the average of one or more dispatched index values over N previous time frames (e.g., any one or more of the dispatched index values described above with respect to FIG. 7, including the dispatched index values from the local market and/or the dispatched index values from the futures market). In certain embodiments, the variable term is also based at least in part on the standard deviation of those dispatched index values. As noted above with respect to FIG. 7 other derivative values can also be used to compute the variable term. The variable term can have any of the values of the average price P_(average) described below in Section V.

Similarly, a supplier for which production is already engaged can adjust their offer strategy by lowering their offer's index when they wish to assure their resource is used for a minimum number of time frames. In order to compensate for the potential lost returns during those minimum run time periods, suppliers can increase their initial start-up index enough to offset for potential losses. Here again, one approach is for resource producers to use the average and/or standard deviation of previously dispatched index values (e.g., any one or more of the dispatched index values described above with respect to FIG. 7, including the dispatched index values from the local market and/or the dispatched index values from the futures market) to forecast the most likely variations and use an increment (M) that minimizes the potential loss over the desired minimum run time:

$\begin{matrix} {{index} = {{variable} - {M\frac{shutdown}{runtime}}}} & (2) \end{matrix}$

where index is the offer index value, variable is the time-dependent index value (e.g., as explained above with respect to Equation (1)), shutdown is the index value of shutting down production, and runtime is the number of periods over which the unit has already run.

Another common objective for suppliers is that they not exceed a maximum production quota allotted for a number of time frames. One solution to this problem is to adjust the offer's index price based on how much of the allotment has been used in relation to number of time frames that have past. Producers that have used a disproportionately high allotment remaining will have lower offers than those that have used a disproportionately low allotment remaining. For example, a supplier with a limited operating license can use:

$\begin{matrix} {{index} = {{variable} + {{{capacity} \cdot {fixed}}\frac{remaining}{{license} - {run}}}}} & (3) \end{matrix}$

where index is the offer index value, variable is the time-dependent index value (e.g., as explained above with respect to Equation (1)), fixed is the time-independent index value, remaining is the number of time frames remaining unused in the license, license is the number of time frames in the license, and run is the number of time frames used in the license.

FIG. 10 is a flowchart 1000 showing a general embodiment for generating offer values for use in any of the disclosed recourse allocation systems. The particular method shown in FIG. 10 is for an electrical resource (e.g., a generator) in a system for allocating electrical resources, but this usage should not be construed as limiting. The method of FIG. 10 can be performed using computing hardware (e.g., a computer processor or a specialized integrated circuit). For instance, the method can be performed by a computer at a supplier's locale, a computer coupled to an electrical generator, or by specialized hardware (e.g., an ASIC or programmable logic device) coupled to the electrical generator. Furthermore, it should be understood that the method acts in FIG. 10 do not necessarily occur in the illustrated sequence.

At 1010, an offer value indicative of a value at which electricity can be supplied by a generator for a current (or upcoming) time frame is computed. In the illustrated embodiment, and as explained above, the offer value is based at least in part on any one or more of the values discussed above with respect to FIG. 7 (e.g., any one or more of the dispatched index values described above with respect to FIG. 7, including the dispatched index values from the local market and/or the dispatched index values from the futures market). Any of these values can be computed locally at the electrical device, or can be transmitted from the one or more central computers. The offer value can also be additionally based at least in part on a startup cost for supplying the electricity, a shutdown cost for supplying the electricity, and/or a remaining number of time frames available in an operating license associated with the electricity as described above (e.g., using a weighted sum or other technique).

At 1012, the offer value is transmitted to the one or more central computers (e.g., one or more computers that manage and operate a local resource allocation market by, for instance, conducting the auction process for the market) along with a value indicative of a quantity of electricity that can be supplied by the generator during the current time frame (or next upcoming time frame) (e.g., using suitable communication means, such as the Internet or other network).

At 1014, an indication of a dispatched value for a current (or upcoming) time frame is received from the one or more central computers. In certain embodiments, a value other than the dispatched value but which is indicative of the dispatched value is received. For example, the value can indicate a difference between a last dispatched value and a newly dispatched value. As noted, the one or more central computers can transmit other information as well (e.g., one or more of dispatched index value(s) from a futures market, averages of the dispatched index values from the futures market and/or the local market, or standard deviations of the dispatched index values from the futures market and/or the local market).

At 1016, the dispatched value is compared to the offer value, and the generator is activated in response to the comparison.

Any combination or subcombination of the disclosed method acts can be repeated after a fixed period of time (e.g., a time period of 15 minutes or less, 5 minutes or less, or other such time period). In certain embodiments, some of the values are reused for subsequent time frames. Furthermore, there are instances when the offer value is used as a bid in the market-based resource allocation system. For example, when the electrical resource is configured with an emergency transfer switch for supplying particular consumers in the power grid, then the offer value can be used as a bid value along with a value indicative of a magnitude of electrical load the generator can remove from the power grid.

I. Ramp Rates

Some resources cannot change their production or consumption output more than a certain amount within a single time frame. In this case, the resource being offered is not the quantity, but the change in quantity. This situation can be handled by treating the change in quantity as a distinct resource rather than as an extra feature of an existing resource. This way, resources for which ramp rates apply have an extra resource allocation strategy, which can be handled separately and independently. This strategy also helps maintain the independence of each resource as regards its allocation.

J. Multiple Resources

Each consumer and producer can engage in both demand and supply of any number of resources. For example, a producer may offer to supply a quantity of X at index A, while simultaneously requesting a quantity of Y at index B. If the producer depends on having Yin order to produce X, it addresses the risk of losing access to Y while still having to produce X by either adjusting the offer and request indexes, or ensuring that it has an alternate source for Y or is ready to pay the penalty for not delivering X. The same considerations apply for consumers.

K. Effect of Constraints

Frequently situations arise where a resource that is available in one part of a service provider's system cannot be delivered in its entirety to another part of the same system. Such delivery constraints can be addressed by segregating the system into two separate resource allocation systems that operate independently. For example, the system with surplus resources can make a supply offer into the system with a deficit, and the system with a deficit can make a consumption request from the surplus system. Each system can dispatch its own index value, in which case the index difference will represent the impact of the constraint on both systems. In some embodiments, the aggregator resource allocation system can credit a capacity expansion account, which is used to support the improvement of the connection between the two such that the constraint is eventually addressed.

L. Capacity Management Market

The resource allocation system described above can also be operated as a capacity management market. A capacity management market can be viewed as a special case of the transactive market that attempts to manage congestion in its local market (e.g., a market at the distribution feeder level). The congestion limit may be caused by local conditions, such as thermal conductor ratings, or for higher level reasons, such as the reduction of localized congestion on sub-transmission networks, or any combination of the above. In the discussion below, the congestion limit is illustrated as being applied at the feeder level to reduce peak demand, though this usage should not be construed as limiting.

The transactive controllers described herein deal with bidding the price and quantity of a load into the auction, termed the “responsive” load. However, the supplier bids and the non-bidding loads on the system (such as lights, refrigerators, or losses) are also desirably accounted for and bid into the auction. The non-bidding loads are called “unresponsive” loads, because their demand does not change as a function of price. In certain embodiments, the operator of the capacity management market fills the role of supply bidder, while also accounting for the unresponsive loads. To bid the supplier curve, the operator of the capacity management market bids the congestion limit at the uncongested market price. FIG. 11 is a graph 1100 illustrating the resulting supply curve that is formed. In particular, FIG. 11 shows that when the congestion is bid and forms the only bid in the market, a vertical line 1110 is formed at the congestion quantity to the price cap of the market. In general, the uncongested market price is the bulk cost of electricity plus mark-up, such as the Locational Marginal Price (“LMP”), or any other appropriate price signal, such as direct purchase of power from distributed generators.

Another typical objective of the operator of the capacity management market is to estimate the total amount of load on the feeder and then determine what portion of the load is responsive versus unresponsive to the price signal. The total load can be measured directly from the equipment requiring the capacity limit, such as a substation transformer. The currently responsive load can be determined from the control bids received from transactive controllers. In particular embodiments, for example, the transactive controllers transmit their current operational state at the market intervals in addition to the other information associated with their demand bids. In one embodiment, the currently responsive load is determined by summing the quantity of the demand currently in an active (or “ON”) state as follows:

$\begin{matrix} {{Q_{resp} = {\sum\limits_{1}^{N}\; {Q_{{bid} - N}*{state}}}},} & (4) \end{matrix}$

where state equals “0” if the electronic device is OFF, and “1” if the electronic device is ON, and N is the total number of submitted bids. The unresponsive load is then determined by subtracting the responsive load from the total load. The unresponsive load quantity is then bid into the market at the market price cap (or some other value that is greater than the other bids) by the operator of the capacity management market, as shown by line 1120 in FIG. 11.

During periods of time when the total load is less than the capacity limit, the electronic devices will respond by adjusting their setpoints to the current market price. However, when the total load tries to exceed the capacity limit, the capacity management market will increase the price of electricity to limit the quantity at the capacity limit, effectively reducing the total load to within the constrained limits.

M. Exemplary Market Clearing Scenarios

Any one or more of the exemplary market clearing scenarios described below can be utilized or experienced in embodiments of the resource allocation systems described herein. For example, the one or more central computers used to manage and operate a local resource allocation market can determine the dispatched index or market clearing price using any of the techniques described below, depending on the bidding scenario presented.

Market clearing begins with the sorting of both buying and selling components. In certain embodiments, buyers are sorted from highest price to lowest price. Sellers are sorted from lowest price to highest price. In certain embodiments, buyer and seller curves are then created by the cumulative sum of the quantities associated with these sorted prices. In particular implementations, the curves are implemented as computer-usable representations of the curves that are computed and stored once the necessary input data is received. The representations of the curves can comprise, for example, arrays of values or other computer-usable data elements or structures. The two, sorted curves can then be overlaid or otherwise analyzed to determine an intersection between the curves. For example, each curve can be considered to move from one extreme in price to the other (e.g., the buyer curve will traverse from a +∞ price to a −∞ price, and the seller curve will traverse from a −∞ price to a +∞ price. In FIGS. 12-23 discussed below, these extremes occur at the zero-quantity location and after all seller or bidder quantities are bid (right edge of the bid curve)).

In general, the market clears at the intersection of the buying and selling curves of the market. According to certain embodiments of the disclosed technology, for a discrete bidding scenario, four distinct, valid clearing situations are supported. The resulting clearing price and quantity are slightly different for each scenario and are desirably handled appropriately. Two more invalid, or failure, scenarios are also possible. For each scenario presented in FIGS. 12-23, buyers are represented in the descending curve and sellers are represented in the ascending curve, and the final market clearing point is designated by a circle or point. There are five distinct buyers and four distinct sellers in each of the four, valid market clearing examples. The two other clearing scenarios (failure and null) follow the same convention, but may have different numbers of buyers and sellers.

The first example market clearing scenario is shown in graph 1200 of FIG. 12. The buyer bids have been sorted by descending price, and the seller bids have been sorted by ascending price. In this scenario, the intersection point of the buying and selling bid lines is at the edge of a buyer quantity, but not at the edge of a seller quantity. When this happens, the partially accepted seller is considered the marginal seller. In this example, the clearing price of the market is this marginal seller's bid price, and the clearing quantity is the sum of all of the buyers' quantities for which the bid was higher than the marginal seller's bid price.

In the market clearing portrayed in FIG. 12, three buyers submitted bids at or above the clearing price. Three sellers submitted bids at or below the clearing price. The three buyers accept the market clearing price and purchase their desired quantities from the market at the clearing price. The two lowest cost sellers sell their bid quantities into the market at the clearing price. The third seller becomes the marginal seller. It gets the price of the market, but the market only needs part of its bid quantity. The marginal seller will only produce a partial output, and may need to track the specific requirements of the system.

In the context of an electrical power market, the marginal seller would be the marginal generator. As the load varies a little bit over the current market interval, the marginal generator will adjust its output to match the demand of the system. Utilizing frequency as the metric for tracking, the generator could adjust its output appropriately. If the load increased, the frequency would decrease and the marginal generator would need to increase its output. If the load decreases, the frequency will increase and the marginal generator needs to reduce its output.

A second example market clearing scenario is shown in graph 1300 of FIG. 13. This scenario is the converse of the first scenario. Here, the buyer and seller curves intersect at an edge of a seller curve, but not at the edge of a buyer quantity. Similar to the marginal seller condition, the buyer is now referred to as the marginal buyer. The market clearing price is set at the bid price of this marginal buyer. In this example, the market clearing quantity is set to the sum of the quantities of the sellers whose bids are less than the marginal buyer's price.

As with the previous example, three buyers submitted bids at or above the clearing price. However, only two sellers submitted bids at or below the clearing price. In this example, the two sellers accept the clearing price of the market, and both sell their full quantities for the market clearing price. The first two buyers are satisfied with the market, so they buy their full desired quantity at the clearing price. The third buyer gets the price of the market, but there is not enough supply to meet its demand. As a result, a proportional response (or no response) will be necessary to meet the clearing criterion.

In the context of an electrical power market, there are a couple of possible methods for handling the marginal buyer quantity. The first method is to consider the marginal buyer to be a device capable of proportional output, like a battery charger. Rather than requiring a 100% charging rate, it will provide a proportional amount of that rate. Unfortunately, this method typically only works if the marginal quantity is a single object. If the marginal quantity is actually made up of several buyers (at the same price), this strategy becomes more difficult. For instance, if the marginal quantity is made up of several buyers, the buyers desirably regulate themselves independently such that in the aggregate they do not exceed the clear quantity. This can be done, for example, by throttling the buyers individually to the fraction of the marginal quantity actually cleared, or by using a random number (e.g., a Bernoulli distributed random number) to determine whether each unit should run during the next interval.

An alternative is to use a method similar to the marginal generator. For example, the marginal loads can all monitor the system's frequency. Utilizing a controller that monitors grid frequency and adapts in response to the frequency (e.g., a grid friendly appliance controller (“GFA”)), loads can adjust accordingly. If the frequency drops, it means the marginal load is too great, so each marginal load would reduce its output. If the frequency increases, the marginal load is too small and needs to increase to balance out the fixed generation. Marginally load controlled by a GFA controller is basically the converse of the generator case.

A variation on the second marginal buyer in power systems method still utilizes a device like the GFA. However, rather than only the marginal load arming the GFA functionality, all GFAs in the system are armed. The regulation price of the system is set to the marginal clearing price. Any device that exercises its GFA functionality during this time will receive compensation at the regulation price. This method helps increase the pool of marginal load since devices below the clearing threshold may still elect to participate in this regulation market.

Graph 1400 of FIG. 14 represents a third market clearing example. Here, the intersection of buyer and seller curves is at the same quantity, but at different prices. The intersection point occurs on an edge of both the buyer and seller quantity curves. In this example, the quantity is set to the intersection point of the two curves. This quantity is either the sum of all sellers' quantities with a bid less than the “marginal” seller bid, or the sum of all buyers' quantities with a bid higher than the “marginal” buyer bid. However, in some embodiments, the price is desirably taken as the average price of the two intersecting bids. For example, the clearing price can be determined as:

$\begin{matrix} {{Price}_{Clear} = {\frac{\left( {{Bid}_{Seller} + {Bid}_{Buyer}} \right)}{2}.}} & (5) \end{matrix}$

In the market scenario of FIG. 14, three buyers submitted bids at or above the clearing price of the market, and three sellers submitted bids at or below the clearing price. In this case, all three buyers' and all three sellers' bidding quantities are met (since the cumulative sum of the cleared bids is the same for both buyers and sellers). Due to the unique nature of this clearing condition, a compromise is made between the lowest cleared buyer bid and highest cleared seller bid. In this example, the final clearing price is not set to either of their values, as was the case with the marginal buyer or marginal seller scenarios above. Rather, the clearing price is set as the average of the cleared buyer and seller bids. This allows both lower bid sellers and higher bid buyers to respond. However, it prevents the subsequent buyer and seller quantities from meeting the clearing price.

The scenario of FIG. 14 is not always as straight forward. Graph 1500 of FIG. 15 shows a scenario where the next seller bid also meets the desired clearing point. Graph 1600 of FIG. 16 shows the same scenario from a buyer perspective. In order to help ensure the proper bidders respond to the cleared market, the clearing price are desirably adjusted accordingly. For example, the final clearing price can be further constrained by the next buying and selling sorted bids. The final clearing price can be selected as the point that is closest to the ideal clearing price, but ensures the subsequent buyer and seller bids are not valid clearing conditions of the market. The maximum and minimum of this further constraint are determined by the specific bidding scenario.

In graph 1500 of FIG. 15, the next seller bid does not exceed the ideal clearing price. To ensure proper operation and that this device does not activate, the price associated with this bid is desirably above the final clearing price. This “next” bid price serves as a non-inclusive maximum for the clearing price. Therefore, the clearing price will have to be slightly below this “next” seller bid. Typically, this will be $0.01 below the next seller bid price.

Graph 1600 for FIG. 16 shows a similar behavior with buyer bids. The next buyer bid does not fall below the ideal clearing price. Therefore, this device would assume it was the marginal quantity and activate. To prevent this, the final clearing price is desirably set slightly higher than this bid. In a manner similar to the previous seller curve example, the “next” buyer bid serves as a limit for the clearing price. However, in this scenario, the “next” buyer bid serves as a non-inclusive lower limit for the market clearing price. The final clearing price of the market must then be slightly above this “next” buyer bid. Again, this may be on the order of a $0.01 increase (or other small incremental amount) above the next buyer bid.

Another valid scenario is actually a variation on the scenario shown in FIG. 14. Graph 1700 of FIG. 17 is an example showing the situation when both the buyer and seller clearing quantities and clearing prices match exactly. In this case, the clearing price is the intersecting price (common for both buyer and seller). The clearing quantity is the sum of all buyers with bid prices equal to or greater than the clearing price, or the sum of all sellers with bid prices equal to or lower than the clearing price. Approaching the clearing point from either the seller or buyer curves should yield identical results.

As indicated, this scenario is a variation on the example shown in FIG. 14. Three buyers and three sellers are satisfied by the market clearing criterion. The clearing buyer and seller both agree on an exact price, so the clearing price is easy to determine. The cumulative sum of all buyers whose bid was greater than or equal to the clearing price is equivalent to the cumulative sum of all sellers whose bid was less than or equal to the clearing price.

A fourth scenario for the market is for the market to fail to clear. This will happen when there is insufficient supply to meet the highest bid-price buyer. Graph 1800 of FIG. 18 provides a common example of this condition. In the full market scenario, there may be buyers on the system that are not participating in the market. These “unresponsive buyers” need to be satisfied before any bidding buyers are handled. In the market, the quantity requested by these devices (estimated or known) is bid into the market at the price cap. This ensures it is met by the seller curve before any responsive loads are considered. In an electrical power market example, these unresponsive buyers would be end-use devices that are not submitting bids into the market, or losses on the distribution system. The market must cover and serve the unresponsive loads and losses before it can handle responsive devices.

In the scenario of FIG. 18, all seller quantities fail to meet the highest buyer bid requirements (typically due to an unresponsive buyer). In such a scenario, the market simply fails to clear. The intersection point of this market will occur at the total seller quantity and the price cap. This is effectively a marginal buyer condition of FIG. 13.

Another clearing scenario is in a similar category to the market failure of FIG. 18. On the other end of the spectrum, suppose the buyers and sellers do not agree on a bid price at all. FIG. 19 includes graph 1900 illustrating this scenario, the Null market clearing scenario. As the buyer and seller curves demonstrate, there is no intersection point for an agreeable price and quantity. The lowest priced seller is higher than the highest priced buyer.

In the null market scenario, the price poses a problem. If set to the price cap, no buyers would activate, but all sellers would activate. If set to 0 or the negative price cap, all buyers would activate, but no sellers would be present to meet the demand. A price signal to keep both parties from responding is between the highest buyer bid and the lowest seller bid. A variation on the equation from the third scenario above is to compute an average price, given as:

$\begin{matrix} {{Price}_{Clear} = \frac{\left( {{Bid}_{LowestSeller} + {Bid}_{HighestBuyer}} \right)}{2}} & (6) \end{matrix}$

The resulting price is higher than any buyer, so no buyers will be activated. The price is lower than any seller, so none of the sellers will be activated. The market desirably includes an overall indicator that indicates a market clearing failure. However, by setting the price to a value that satisfies neither buyers nor sellers in the market, responses to a failed market should be mitigated.

According to certain embodiments of the disclosed technology, the market can only clear in one of these scenarios. Some more complex clearing situations can occur, but they are typically related to the base cases introduced above. Graph 2000 in FIG. 20 demonstrates a variation on the marginal seller case of FIG. 12. Despite the intersecting bids having the same price, this scenario can be treated as identical to FIG. 12. The three highest buyer bids are satisfied by the market and these buyers purchase their desired quantities. Two sellers are below the clearing price, so they accept the market price and sell their full quantities into the system. The third seller is at the clearing price, but its full quantity is not needed. This seller gets the clearing price and acts as the marginal seller in the market. It will only provide part of its full output, and may need to track the buyer demand around that output point.

Graph 2100 in FIG. 21 shows a similar example where the clearing price is again clear. However, the quantities once again do not properly align. This case is merely a special case of the scenario presented in FIG. 13, or a marginal buyer scenario. The clearing price of the market is clear. Only the sellers with bids at or below the clearing price accept the market clearing value, and only buyers with bids at or higher than the clearing price accept the cleared market. Unfortunately, there is more demand from the buyers than there is supply from the sellers. As such, the buyer with the market clearing bid will not be able to have their full bid quantity satisfied. This buyer will consume only the appropriate portion of their bid quantity.

If the capability for unresponsive buyers is included, that scenario desirably factors into the market clearing as well. Once the unresponsive load quantity is known or estimated, it is bid into the market as a buyer quantity with a large price (e.g., the price cap). Graph 2200 of FIG. 22 shows how unresponsive buyers fit into the “five bidder, four seller” example for the four valid market clearing scenarios. The unresponsive buyers effectively become a bidding quantity that is always met first. Only once the needs of these unresponsive buyers are satisfied, will responsive buyer devices be able to interact with the market. If the needs of the unresponsive buyers are greater than the seller supply, the market failure case of FIG. 19 will occur.

A variation on FIG. 22 and FIG. 18 occurs between the two conditions. A case in which the available seller quantities only meet the unresponsive bidder demand is illustrated in graph 2300 of FIG. 23. Desirably, the clearing price in this scenario would be the price cap of the system. This would enable all of the seller quantities, and only the unresponsive bidder quantity. However, such a “price cap bid” is typically significantly larger than other bids on the system. Under such a scenario, this bid would severely skew the output statistics on the market. To prevent this large skew, the clearing price is adjusted slightly. Similar to the conditions in FIG. 15 and FIG. 16, the final clearing price desirably still ensures all sellers are producing, but only the unresponsive buyers are consuming. As such, the marginal seller's price becomes the non-inclusive lower limit of the clearing price. The clearing price will then be set slightly above this price. This will help ensure that all sellers on the system are activated, but no responsive buyers meet the price criterion.

IV. Detailed Exemplary Embodiments of Two-Way, Transactive Controllers for Thermostatically-Controlled Equipment

The techniques introduced in this section can be applied to transactive controllers for thermostatically controlled equipment. The transactive controllers are capable of transmitting bids to the resource allocation system. For illustrative purposes, the control is assumed to be for space heating and cooling (e.g., in residential or commercial buildings). In particular, the control is assumed to be for an HVAC unit. The approach can be extended to other contexts as well (e.g., electrical charger; electric vehicle charger; or any other electrical system having variable performance states that can be controlled using two opposing bid curves).

In embodiments of the disclosed technology described below, thermostatically controlled heating and cooling modifies conventional controls by explicitly using market information obtained through interaction with a resource allocation system, such as any of the resource allocation systems introduced above in Section II and III. In particular, exemplary embodiments use bid and dispatched index value information. In the discussion below, bids and dispatched index values are sometimes referred to in terms of a cost or price. It is to be understood that this “cost” or “price” can represent an actual monetary cost or price, or an index value in terms of the relevant resource allocation index. Furthermore, the dispatched index value from the resource allocation system is sometimes referred to herein as the “clearing price”.

In certain embodiments, a thermostatic controller (sometimes referred to as an enhanced programmable communicating thermostat (“ePCT”)), operates using one or more data input from a user (e.g., input via a user interface at the controller or at a computer that controls the thermostatic controller). In particular implementations, the user inputs include a desired temperature for an HVAC cooling mode, a desired temperature for an HVAC heating mode, and a comfort setting indicative of a degree to which a user is willing to tolerate temperature deviation from the desired temperatures in favor of possible cost savings. In certain embodiments, additional information can also be input by the user. This additional information can include, for example, any one or more of an absolute maximum temperature and an absolute minimum temperature for an HVAC cooling mode, and an absolute maximum temperature and an absolute minimum temperature for an HVAC heating mode. Embodiments of the thermostatic controller thermostatic controller also operate using market data (e.g., price data received from a central computer that operates the local resource allocation market). In particular implementations, the market data includes a most recent clearing price for the local resource allocation market (e.g., the price of the current time frame or the imminent upcoming time frame). As noted above, in certain embodiments, the market data can include price information from a futures market (e.g., a day-ahead market). The market data received can also include additional market information, such as a nominal (or average) price over a certain number of time frames and a standard deviation (or normalized standard deviation) of the price over the time frames. In some embodiments, this additional data is computed by the thermostatic controller itself. From the received information, the thermostatic controller can compute a bid price and a bid quantity.

The data elements that are involved in operating certain exemplary embodiments of the disclosed thermostatic controller are summarized in Table 1 below. It is to be understood, however, that the identified data is by way of example only, and that other embodiments use other data and/or a subset of the data shown in Table 1.

TABLE 1 Data Elements for an Exemplary HVAC Thermostatic Controller Description Symbol Units or Possible States Nominal (or Average) Price P_(ave) $/MWh Standard Deviation of Price σ_(P) $/MWh Clearing Price P_(clear) $/MWh Bid price P_(bid) $/MWh Bid Quantity Q_(bid) kW Desired Temperature T_(des) Degrees (Fahrenheit or Celsius) Current Observed Temperature T_(current) Degrees (Fahrenheit or Celsius) Operating Mode mode OFF, HEATING, COOLING, or AUTO Absolute Max. Temp., Cooling T_(max,abs, cool) Degrees (Fahrenheit or Celsius) Absolute Min. Temp., Cooling T_(min,abs, cool) Degrees (Fahrenheit or Celsius) Absolute Max. Temp., Heating T_(max,abs, heat) Degrees (Fahrenheit or Celsius) Absolute Min. Temp., Heating T_(min,abs, heat) Degrees (Fahrenheit or Celsius) Comfort Setting k None

In particular implementations, for a current or next upcoming time frame of the local resource allocation market, the thermostatic controller receives the nominal or average price, P_(ave), which is computed from the clearing price from a set of time frames; the standard deviation of the price, σ_(P), during the same set of time frames; and the most recent market clearing price, P_(clear). The thermostatic controller then computes a bid for a next time frame following the time frame associated with the clearing price and transmits the bid to the central computer for submission into the auction process. In particular, the thermostatic controller outputs a bid price, P_(bid), and a bid quantity, Q_(bid), which typically represents the amount of electricity needed to operate at the desired performance state. In some embodiments, each participating appliance on the user's premises generates its own bid and a home energy management (“HEM”) system collects all bids and submits them periodically to the central computer (e.g., at fixed intervals corresponding to the time frames with which the local resource market operates, such as five-minute increments). In other embodiments, the participating appliances submit their bids directly or at least some of the appliances submit their bids directly to the central computer.

A. Considerations for Generating Demand Bids for HVAC Systems

In certain embodiments, the transactive thermostatic controller uses the inputs P_(clear), P_(ave) and σ_(P) to compute the demand price P_(bid). Further, the transactive thermostatic controller uses the current operating conditions of the HVAC system to determine the quantity of energy, Q_(bid), to bid for (e.g., data concerning whether the HVAC system is in a cooling or heating mode and data concerning the operating power necessary for continuing or beginning to operate in such mode for the next interval). To compute the demand price, P_(bid), data concerning other control parameters for the HVAC system can also be used. The control parameter data can include, for instance, an observed temperature in a space controlled by the controller, T_(current), a desired temperature, T_(des), for the current operating mode (also referred to as the “base set point” or just “set point”), a current operating mode (e.g., OFF, HEATING, COOLING, or AUTO), and a comfort setting, k. In certain implementations, mode-specific absolute maximum and minimum temperatures are also considered. The comfort setting k can be a sliding scale value between a minimum setting (representing maximum comfort) and a maximum setting (representing maximum savings). For illustrative purposes, the discussion below assumes that the comfort setting k is between 0 and 1. It should be understood that any comfort setting range or resolution among settings can be used. In general, the comfort setting k indicates the user's preference for comfort versus cost savings in the transactive thermostatic controller's demand response. Any of these values (e.g., the desired temperature, absolute max/min temperatures, and comfort slider setting) can change over time based on the transactive thermostatic controller's schedule set by the user. For example, the desired temperature can change depending on the time of day and/or the day of the week. Such changes to daily and weekly schedules can be set by the user via a user interface at the transactive thermostatic controller itself or by a computer being used to implement or control the transactive thermostatic controller.

In certain embodiments of the disclosed technology, the computation of the bid price is based on a bid curve that relates price to a desired temperature. In particular implementations, the bid curve is computed based on gain (or ramp) and limit values associated with the comfort slider setting. Although a variety of methods can be used to determine the gain and limit values, one exemplary technique is illustrated in Table 2 below.

TABLE 2 HVAC Gain and Limit Settings for Comfort vs. Savings Slider Settings Absolute High High Comfort Comfort Savings Description Symbol (k = 0.0) (k = 0.2) (k = 1.0) Heating mode upper gain k_(H) _(—) _(U) N/A 4 2 Heating mode lower gain k_(H) _(—) _(L) N/A 4 2 Heating mode upper d_(H) _(—) _(U) 0 1 5 temperature deviation limit Heating mode lower d_(H) _(—) _(L) 0 2 10 temperature deviation limit Cooling mode upper gain k_(C) _(—) _(U) N/A 4 2 Cooling mode lower gain k_(C) _(—) _(L) N/A 4 2 Cooling mode upper d_(C) _(—) _(U) 0 2 10 temperature deviation limit Cooling mode lower d_(C) _(—) _(L) 0 1 5 temperature deviation limit

The first column in Table 2 identifies the purpose and name of the gain or limit value. The second column in Table 2 identifies the symbol for the gain or limit value. The third column in Table 2 value indicates that for a comfort value k of 0, then special rules apply. In the embodiment represented by Table 2, when the comfort value is 0.0, the transactive thermostatic controller operates in a special mode (sometimes referred to as the “absolute comfort” mode) in which the controller does not use a ramped bid curve. Instead, when operating in this mode, the transactive controller strictly follows the temperature set points entered by the user. In this mode, the bid price is set at or near the price cap or maximum price (P_(cap,max)) and the commanded temperature deviation δT (discussed in more detail below) is set to zero. This mode is also used to implement a manual override initiated by a user (e.g., if a user selects a desired temperature and activates a “hold temperature” or “HOLD TEMP” mode of the transactive controller). The fourth column in Table 2 shows the gain (or ramp) and limit values for when k is set to an increment above 0 (for example, k=0.2). These values are labeled the “high comfort” settings. The fifth column in Table 2 shows the gain and limit values for when k is set to its highest setting (in this example 1.0). These values are labeled the “high savings” settings. For comfort level values between 0.0 and 1.0, an interpolation can be performed based on the high comfort settings and the high savings settings to compute the corresponding gain and limit values. In other embodiments, the gain and limit values for various comfort settings are stored in a file, look-up-table, or other memory storage means, which can be accessed and loaded when the comfort setting is changed. Furthermore, the gain values k_(H) _(—) _(L), k_(H) _(—) _(U), k_(C) _(—) _(L), and k_(C) _(—) _(U) can be dependent on a variable (σ) that controls the responsiveness of the controller to changes in the comfort setting. This variable (σ) can be a utility or customer pre-defined responsiveness level. It should be noted that the gain and limit values identified in Table 2 are merely representative examples, and other values can also be used. Additionally, in some embodiments, the gains and limits are independently variable and input by the user or from some other source. Still further, in certain embodiments, some of the gains and limits are independently controlled (e.g., the limits) while some of the gains and limits are dependent on a user comfort setting (e.g., the gains). Additionally, in certain implementations, the user can override any selected one of the gains and limits without disturbing the values of the remaining gains and limits.

The following sections describe in more detail how the gain and limit values can be used in exemplary embodiments of the disclosed to compute a bid curve for when the HVAC system is operating in a cooling mode and in a heating mode.

B. Exemplary Embodiments for Computing Cooling Mode Bid Curves

FIG. 24 is a diagram 2400 showing an exemplary bid curve 2410 for the cooling mode. The exemplary curve 2410 is a piecewise linear curve that maps the demand response of the HVAC system in its cooling mode as a function of the desired temperature (T_(des)) (also referred to as the “cooling mode base set point” or “cooling mode set point”) and the selected comfort setting k. The curve is further determined by the minimum and maximum temperature values, which can be determined from the user's comfort setting or from a value input directly from the user. In particular implementations, the curve is implemented as a computer-usable representation of the curve (indicating, for instance, the minimum temperature (T_(min)), the desired temperature (T_(des)), the maximum temperature (T_(max)), as well as the gain and limit values or some other indication of the slopes between these temperatures) that is computed and stored once the necessary input data is received. This representation of the curve can comprise, for example, an array of values or other computer-usable data element or structure. Further, this representation can be used for both bid determination and temperature set point adjustment. Once the bid curve is determined, bid determination proceeds in a straightforward fashion. In particular embodiments, the current observed temperature (T_(obs)) is detected at the transactive thermostatic controller (or at one or more thermometers in the area controlled by the transactive controller) and is used in the bid determination process. In certain exemplary embodiments, the bid price (P_(bid)) is determined as follows:

$\begin{matrix} {P_{bid} = \left\{ {\begin{matrix} P_{{cap},\min} & {T_{obs} < T_{\min}} \\ {P_{\min} + {{\sigma_{p}\left( {P_{ave} - P_{\min}} \right)}\left( \frac{T_{obs} - T_{\min}}{T_{des} - T_{\min}} \right)}} & {T_{\min} \leqq T_{obs} < T_{des}} \\ {P_{ave} + {{\sigma_{p}\left( {P_{\max} - P_{ave}} \right)}\left( \frac{T_{obs} - T_{des}}{T_{\max} - T_{des}} \right)}} & {T_{des} \leqq T_{obs} \leqq T_{\max}} \\ P_{{cap},\max} & {T_{\max} < T_{obs}} \end{matrix},} \right.} & (7) \end{matrix}$

where T_(min)=max(T_(des)−d_(C) _(—) _(L),T_(min,abs,cool)), T_(max)=min(T_(des)+d_(C) _(—) _(U),T_(max,abs,cool)), P_(min)=P_(ave)−T_(min)*k_(C) _(—) _(L)(σ), P_(max)=P_(ave)+T_(max)*K_(C) _(—) _(U)(σ), and d_(C) _(—) _(L), d_(C) _(—) _(U), k_(C) _(—) _(L), and k_(C) _(—) _(U) are as shown in Table 2, where σ is a utility or customer pre-defined responsiveness level with a value between 1 and 3, and k_(C) _(—) _(L), and k_(C) _(—) _(U) are functions of σ. The steepness of the curve shown in FIG. 24 is related to the gains given in Table 2, which shows that the comfort setting can directly affect the shape of the curve and the calculated bid price. For instance, and with reference to the example curve 2410, the curve illustrated in FIG. 24 is computed from a desired temperature value T_(des) of 73 and a comfort setting k of 0.6. Thus, and according to Table 2, the value of k_(C) _(—) _(U), is 3, the value of k_(C) _(—) _(U), is 3, the value of d_(C) _(—) _(U) is 6, and the value of d_(C) _(—) _(L) is 3.

Furthermore, in the illustrated bid curve 2410, the observed current temperature T_(obs) is greater than the T_(des), which means that the value of P_(bid) will be greater than P_(ave). In other words, because the temperature at the user's premises is warmer than desired, the user is willing to pay higher than the average energy prices to achieve a cooler temperature. The amount to which the bid price will be increased over the average price P_(ave), however, is dependent on the gain and limit values, and therefore on the user's comfort settings. By contrast, if T_(obs) were cooler than T_(des), P_(bid) would be less than P_(ave). Exemplary techniques for determining the temperature set point adjustment for the cooling mode are discussed below.

Pre-cooling and load curtailment occur when the price is lower than average and higher than average, respectively. The two portions of the bid curve 2410 in which pre-cooling and load curtailment occur are illustrated as “pre-cooling” portion 2420 and “load curtailment” portion 2422. For instance, and as can be seen by the cooling mode bid curve 2410 in FIG. 24, the bid curve 2410 indicates that when market prices are higher than the average, the load will be reduced or curtailed as a result of the “load curtailment” portion 2422, and the air conditioner will be activated less. This reduces energy consumption and saves money when prices are relatively high. On the other hand, when market prices are lower than average, the air conditioner is activated as a result of the “pre-cooling” portion 2420 in order to pre-cool the home or area in order to reduce energy consumption during later periods when the price of energy is higher.

C. Exemplary Embodiments for Computing Heating Mode Bid Curves

FIG. 25 is a diagram 2500 showing an exemplary bid curve 2510 for the heating mode. The exemplary curve 2510 is a piecewise linear curve that maps the demand response of the HVAC systems in its heating mode as a function of the desired temperature (T_(des)) (also referred to as the “heating mode base set point” or the “heating mode set point”) and comfort setting k. In the illustrated embodiment, the heating bid curve is the negative of the cooling bid curve, though this is not necessarily the case, as the variables that control the shape of the bid curves can vary between the heating and the cooling curve. The bid curve is further determined by the minimum and maximum temperature values, which can be determined from the user's comfort setting or from a value input directly from the user (as more fully explained below). In particular implementations, the curve is implemented as a computer-usable representation of the curve (indicating, for instance, the minimum temperature (T_(min)), the desired temperature (T_(des)), the maximum temperature (T_(max)), as well as the slope of the lines between these points) that is computed and stored once the necessary input data is received. This representation of the curve can comprise, for example, an array of values or other computer-usable data element or structure. Further, this representation can be used for both bid determination and temperature set point adjustment. Once the bid curve is determined, bid determination proceeds in a straightforward fashion. In particular embodiments, the current observed temperature (T_(obs)) is determined at the transactive thermostatic controller (or at a thermostat in the area controlled by the respective controller) and used to compute the bid price (P_(bid)) as follows:

$\begin{matrix} {P_{bid} = \left\{ {\begin{matrix} P_{{cap},\max} & {T_{obs} < T_{\min}} \\ {P_{\max} - {{\sigma_{p}\left( {P_{\max} - P_{ave}} \right)}\left( \frac{T_{obs} - T_{\min}}{T_{des} - T_{\min}} \right)}} & {T_{\min} \leqq T_{obs} < T_{des}} \\ {P_{ave} - {{\sigma_{p}\left( {P_{ave} - P_{\min}} \right)}\left( \frac{T_{obs} - T_{des}}{T_{\max} - T_{des}} \right)}} & {T_{des} \leqq T_{obs} \leqq T_{\max}} \\ P_{{cap},\min} & {T_{\max} < T_{obs}} \end{matrix},} \right.} & (8) \end{matrix}$

where T_(min)=max(T_(des)−d_(H) _(—) _(L),T_(min,abs,heat)), T_(max)=min(T_(des)+d_(H) _(—) _(U),T_(max,abs,heat)), P_(min)=P_(ave)−T_(min)*k_(H) _(—) _(L)(σ), P_(max)=P_(ave)+T_(max)*K_(H) _(—) _(U)(σ), and d_(H) _(—) _(L), d_(H) _(—) _(U), k_(H) _(—) _(L), and k_(H) _(—) _(U) are given in Table 2. As with the cooling mode example, the gains in Table 2 affect the shape of the bid curve 2510 and the resulting bid price. For instance, and with reference to the example curve 2510, the curve illustrated in FIG. 25 is computed from a desired temperature value T_(des) of 68 and a comfort setting k of 0.6. Thus, and according to Table 2, the value of k_(H) _(—) _(U), is 3, the value of k_(H) _(—) _(L) is 3, the value of d_(H) _(—) _(U) is 3, and the value of d_(H) _(—) _(L) is 6. In the illustrated example, the observed temperature is cooler than desired, resulting in a bid price that is higher than average. The temperature set point calculation for heating mode is discussed below.

Pre-heating and load curtailment occur when the price is lower than average and higher than average, respectively. The two portions of the bid curve 2510 in which pre-heating and load curtailment occur are illustrated as “pre-heating” portion 2520 and “load curtailment” portion 2522. For instance, and as can be seen by the heating mode bid curve 2510 in FIG. 25, the bid curve 2510 indicates that when market prices are higher than the average, the load will be reduced or curtailed as a result of the “load curtailment” portion 2522, and the heating system will be activated less. This reduces energy consumption and saves money when prices are relatively high. On the other hand, when market prices are lower than average, the heating system is activated as a result of the “pre-heating” portion 2520 in order to pre-heat the home or area in order to reduce energy consumption during later periods when the price of energy is higher.

D. Considerations for Adjusting the Set Point of the Transactive Thermostatic Controller

Exemplary embodiments of the disclosed transactive thermostatic controller use the clearing price (P_(clear)) and the bid curves described above to calculate a delta command (δT), which is used by the controller to adjust the current desired temperature set point. The delta command can be computed by the controller itself or by a central computer that controls or implements the controller.

By adjusting the desired temperature set point, an HVAC load can be reduced if prices are above average, or increased if prices are below average. The following sections explain how the delta command is computed for when the HVAC system is operating in cooling mode and for when the HVAC system is operating in heating mode.

E. HVAC Cooling Mode Delta Command Computations

When the HVAC system is operating in cooling mode, the cooling mode bid curve is also used to determine the adjusted set point T_(set,adj). In certain embodiments, the following equations are used to compute the adjusted set point T_(set,adj) from the cleared price P_(clear):

$\begin{matrix} {T_{{set},{adj}} = \left\{ {\begin{matrix} T_{\min} & {P_{clear} < P_{\min}} \\ {T_{\min} + {\frac{1}{\sigma_{p}}\left( {T_{des} - T_{\min}} \right)\left( \frac{P_{clear} - P_{\min}}{P_{ave} - P_{\min}} \right)}} & {P_{\min} \leqq P_{clear} < P_{ave}} \\ T_{des} & {P_{\min} = {P_{ave} = P_{\max}}} \\ {T_{des} + {\frac{1}{\sigma_{p}}\left( {T_{\max} - T_{des}} \right)\left( \frac{P_{clear} - P_{ave}}{P_{\max} - P_{ave}} \right)}} & {P_{ave} \leqq P_{clear} < P_{\max}} \\ T_{\max} & {P_{\max} \leqq P_{clear}} \end{matrix},} \right.} & (9) \end{matrix}$

In order to effect the change to the set point, a delta value (δT) indicating the difference between the current set point and the new set point can be computed and used by the transactive thermostatic controller. In particular embodiments, the delta value (δT) is computed as follows:

δT=T _(set,adj) −T _(des).  (10)

F. HVAC Heating Mode Delta Command Computations

When the HVAC system is operating in heating mode, the heating mode bid curve is also used to determine the adjust set point T_(set,adj). In certain embodiments, the following equations are used to compute the adjusted set point T_(set,adj) from the cleared price P_(clear):

$\begin{matrix} {T_{{set},{adj}} = \left\{ {\begin{matrix} T_{\max} & {P_{clear} < P_{\min}} \\ {T_{des} + {\frac{1}{\sigma_{p}}\left( {T_{\max} - T_{des}} \right)\left( \frac{P_{ave} - P_{clear}}{P_{ave} - P_{\min}} \right)}} & {P_{\min} \leqq P_{clear} < P_{ave}} \\ {T_{des} + {\frac{1}{\sigma_{p}}\left( {T_{\min} - T_{des}} \right)\left( \frac{P_{clear} - P_{ave}}{P_{\max} - P_{ave}} \right)}} & {P_{ave} \leqq P_{clear} \leqq P_{\max}} \\ T_{\min} & {P_{\max} < P_{clear}} \end{matrix},} \right.} & (11) \end{matrix}$

The calculation of the delta command is given in Equation (10). In certain implementations, if the HVAC system is in the “OFF” mode, then the system does not consume energy and the bid price is P_(cap,min).

G. Resolving Bid Curve Conflicts

When the transactive thermostatic controller is operating exclusively in either a cooling mode or a heating mode, the demand response of the controller is determined by a single bid curve. However, when the transactive thermostatic controller operates in an automatic or “AUTO” mode, the controller may operate in a cooling mode or a heating mode depending on the current observed temperature. Thus, the controller operates using two bid curves. This creates the potential for conflict between the two bid curves. FIG. 26 is a diagram 2600 illustrating a conflict situation with the exemplary bid curves 2410, 2510. As can be seen in FIG. 26, the pre-heating zone 2520 of the heating bid curve 2510 overlaps in part with the pre-cooling zone 2420 of the cooling bid curve 2410. As a result, it is unresolved what the transactive thermostatic controller should do when the observed temperature is in the conflict region 2610. Accordingly, it is desirable for the HVAC system to operate with a technique for resolving conflict situations.

Furthermore, the proximity of pre-heating zone 2520 to the pre-cooling zone 2420 creates the potential for the HVAC system to continuously toggle between cooling and heating states, resulting in unnecessary and potentially costly operation of the HVAC system. For instance, even if the pre-heating zone 2520 ended at a temperature of 69.5° F., HVAC systems typically operate with a deadband of ±1° F. (or other amount), meaning that the HVAC system operating in a cooling mode will continue to cool until the temperature is 1° F. below the target pre-cooling temperature (In FIG. 26, 69° F. or 70° F.-1° F.). At 69° F., however, the HVAC system may switch to a heating mode and pre-heat the premises to a target pre-heating temperature of 70.5° F. (69.5° F.+1° F.), thereby triggering the cooling mode again. Accordingly, it is desirable to also properly account for any deadband settings that the HVAC system may have.

The paragraphs below describe various possible methods for resolving conflicting bid curves.

One exemplary embodiment for resolving a conflict between bid curves comprises modifying the bid curves to eliminate the pre-cooling and pre-heating zones. The pre-cooling and pre-heating zones can be eliminated, for example, if the zones overlap with each other or if the zones are within a deadband of one another (e.g., within 2° F. if the deadband is set to ±1° F.). FIG. 27 is a diagram 2700 illustrating an exemplary implementation of this embodiment. In particular, FIG. 27 shows a modified version 2710 of the heating bid curve 2510 in which the pre-heating zone is eliminated but curtailed heating zone 2730 remains. Additionally, FIG. 27 shows a modified version 2712 of the cooling bid curve 2410 in which the pre-cooling zone is eliminated but curtailed cooling zone 2720 remains. Together, the modified heating curve 2710 and the modified cooling curve 2712 create a dead zone 2720 in which the HVAC system is deactivated. For example, no pre-heating or pre-cooling occurs in the dead zone 2710.

In some embodiments of the disclosed technology, the transactive thermostatic controller includes a mode in which pre-cooling and pre-heating is not available. When such a mode is selected (e.g., by a user), then the resulting bid curves are similar to those shown in FIG. 27.

Although the pre-heating zone and the pre-cooling zone are shown as being entirely eliminated in FIG. 27, in certain embodiments, the pre-heating and pre-cooling zones are only partially eliminated.

As noted, the elimination (or partial elimination) of the pre-cooling and pre-heating zones can be implemented when the zones are determined to overlap with one another. In other embodiments, the elimination (or partial elimination) of the pre-cooling and pre-heating zones can be implemented when the edges of the pre-cooling and pre-heating zones are within a certain degree or amount from each other (e.g., within a deadband distance, or within a fixed degree or amount from one another). It should also be noted that the bid curves illustrated in FIG. 27 assume that the desired base set points for heating and cooling do not overlap. In certain implementations, this condition is enforced by the transactive thermostatic controller (e.g., by issuing a warning if the base set points overlap). For instance, the auto mode can be disabled when the base set points of the cooling and heating mode overlap.

In particular embodiments, the pre-cooling zone and pre-heating zone can be modified so that a fixed temperature difference exists between the two curves (e.g., a deadband or other difference, which can be user selected or preset). For example, the fixed temperature difference can be centered around a temperature point between the two the bid curves. In one particular implementation, for instance, the average of the cooling and heating base set points is used to determine a midpoint. The maximum temperature limit of the cooling bid curve and the minimum temperature limit of the heating bid curve are then set equidistant from the midpoint. In some implementations, the distance from the midpoint is equal to one-half the deadband setting. This implementation is illustrated by diagram 2800 in FIG. 28, which includes a cooling bid curve 2812 comprising a curtailed cooling zone 2822 and a partial pre-cooling zone 2820, and a heating bid curve 2810 comprising a curtailed heating zone 2830 and a partial pre-heating zone 2832. As can be seen, the pre-cooling zone 2820 and the pre-heating zone 2832 are modified so that a temperature difference 2840 exists between the two curves. Furthermore, the location of the temperature difference is centered around a midpoint 2845, which is located between the two set points 2811, 2813 (T_(des)) of the heating bid curve 2810 and the cooling bid curve 2812, respectively. This embodiment helps ensure that there is no overlap of the curves or deadbands between the cooling and heating base set points. However, if the base set points are too close together, the beneficial effects of pre-cooling and pre-heating may be lost. The computation of the demand price can be computed as described above using the bid curve in which the currently observed temperature falls.

Another exemplary embodiment for resolving conflicts between bid curves is illustrated in FIGS. 29 and 30. In general, FIGS. 29 and 30 illustrate an embodiment in which one of the modes, either the cooling mode or the heating mode, is determined to be the dominant mode. Further, the bid curve of the non-dominant mode is modified so that either the pre-cooling or pre-heating zone is eliminated. The bid curve of the dominant mode, however, continues to include either a pre-cooling or pre-heating zone. In certain implementations, however, the pre-cooling or pre-heating zone of the dominant mode is also adjusted so that it does not interfere with the base set point of the complementary heating bid curve or cooling bid curve. As a result of this approach, a dead zone can be created between the desired heating or cooling base set point and the pre-cooling or pre-heating range.

For example, the transactive thermostatic controller can operate according to a method in which the mode of the controller changes from heating to cooling (or vice versa) when the temperature passes a set desired temperature (T_(des)) of the non-operating mode (the base set point for the non-operating mode). For example, if the current mode of operation for the controller is the cooling mode, the controller will consider the cooling mode to be the dominant mode and adjust the heating mode bid curve so that it does not include (or only partially includes) a pre-heating zone. FIG. 29 is a diagram 2900 illustrating an example of this mode of operation. In particular, FIG. 29 includes modified heating bid curve 2910 that does not include a pre-heating zone but instead only includes the curtailed heating zone 2930. The elimination of the pre-heating zone can be implemented by changing the data that represents the bid curves or by changing the way the controller responds to the curves (e.g., by ignoring the data that indicates the pre-heating zone). FIG. 29 also includes a cooling bid curve 2912 that includes both a pre-cooling zone 2920 and a curtailed cooling zone 2922. In this example, the controller will follow the cooling mode bid curve until the temperature dips below the desired base set point for heating 2911 (T_(des)), at which point the controller mode will switch to a heating mode. As a result, the dominant mode will be changed to the heating mode and the controller will follow the heating mode bid curve. As a result of the switch to the heating mode as the dominant mode, the heating mode bid curve will include the pre-heating zone but the cooling mode bid curve will be adjusted so that it does not include (or only partially includes) a pre-cooling zone. FIG. 30 is a diagram 3000 illustrating an example of this mode of operation. In particular, FIG. 30 includes heating bid curve 3010 that includes both a curtailed heating zone 3030 and a pre-heating zone 3032. FIG. 30 further shows a modified cooling bid curve 3012 in which the pre-cooling zone is eliminated but the curtailed cooling zone 3020 remains. The elimination of the pre-cooling zone can be implemented by actually changing the data that represents the bid curves or by changing the way the controller responds to the curves (e.g., by ignoring the data that indicates the pre-cooling zone). In certain implementations, the dominant mode will remain the heating mode unless the temperature rises above the cooling mode desired temperature base set point 3013 (T_(des)) for cooling.

As a result of this method, a dead zone between the two bid curves is created that prevents oscillation between heating and cooling modes under most circumstances (e.g., depending on the size of the dead-zones). Once the dominant operating mode is determined, the computation of the demand price can be computed as described above using the appropriate dominant mode bid curve.

The method illustrated by FIGS. 29 and 30 can be implemented by the transactive thermostatic controller by including an additional mode (for illustrative purposes termed the dominan_mode) that indicates the current dominant mode of the controller. In particular implementations, the dominant_mode has the following possible states: PREHEAT, PRECOOL, or NONE. In certain implementations, the dominant_mode is set to NONE by default, and neither pre-cooling nor pre-cooling is activated. In this state, the curtailed heating and curtailed cooling zones are unaffected. In other words, the bid curves are modified or treated as being modified as shown in FIG. 27. If the controller state switches to a cooling mode (e.g., the overall state of the controller switches to COOL) from any other state, then the dominant_mode becomes PRECOOL, and the pre-cooling regime is activated. This state is illustrated by the bid curves 2910, 2912, in FIG. 29. In certain implementations, the pre-cooling regime is modified if there is an overlap with the heating base set point. In particular implementations, for instance, if an overlap occurs with the heating base set point and the pre-cooling lower limit (with or without a deadband), the base set point remains unaffected while the pre-cooling regime is truncated to one full deadband above the heating base set point.

In some implementations, the dominant_mode will remain in the set state (in this example, PRECOOL) state until a certain event occurs. The events can include one or more of the following. First, if the observed temperature crosses the set point for the non-dominant mode (in this example, if the observed temperature crosses the set point for the heating mode), the dominant_mode state can switch. In this example, the dominant_mode can be switched to PREHEAT, in which case the pre-cooling regime would be deactivated and the pre-heating regime would be fully activated. Second, if the controller state switches to another operating mode (e.g., from an “AUTO” mode to a “HEAT,” “COOL,” “HOLD TEMP,” or “OFF” mode), then the dominant_mode can revert to NONE. Third, if the user manually changes a base set point for either the cooling or heating mode, the dominant_mode can revert to NONE and both pre-heating and pre-cooling regimes can be deactivated until such time that a dominant_mode is activated. Fourth, if a schedule specified by the user becomes active and moves either of the base heating or cooling set points, then the dominant_mode state can revert to NONE and both pre-heating and pre-cooling regimes can be deactivated until such time that a dominant_mode is activated. Fifth, if the HVAC system is not operating in a cooling mode or a heating mode for a certain period of time (e.g., because the observed temperature is in a dead zone between the two bid curves), then the dominant_mode state can revert to NONE. This time period can be set by the user and can be reset each time the system moves from an active cooling or heating state to an inactive state.

The exemplary method illustrated by FIGS. 29 and 30 can be modified in a number of ways. For example, although FIGS. 29 and 30 show the pre-cooling or pre-heating zones being entirely eliminated, the pre-cooling or pre-heating zones of the non-dominant mode can be only partially eliminated. Such embodiments (which are sometimes referred to as embodiments operating in the “sliding mode” of operation) can be used to attempt to maximize the amount of pre-cooling and pre-heating that is performed, but still resolve conflict situations between the two bid curves. For instance, in particular implementations, the bid curve of the non-dominant mode can be reduced so that a deadband (or other set number of degrees) separates the bid curve from the nearest limit of the other bid curve. The deadband can be any value, but in certain exemplary embodiments is ±1° F. or ±2° F. FIG. 31 is a diagram 3100 illustrating a partial bid curve for a non-dominant mode. In particular, diagram 3100 shows a cooling bid curve 3112 that includes a full pre-cooling zone 3120 and curtailed cooling zone 3122, and a heating bid curve 3110 that includes a full curtailed heating zone 3130 but a partial pre-heating zone 3132. In particular, the HVAC system represented by FIG. 31 is assumed to be in a cooling mode of operation, in which case cooling is determined to be the dominant mode. Consequently, the cooling bid curve 3122 is not modified. However, the bid curve for the non-dominant mode is partially modified. In the illustrated embodiment, for instance, a pre-heating zone is modified so that a temperature difference 3140 exists between the minimum temperature limit of the cooling curve and the maximum temperature of the heating bid curve 3110. This results in a partial pre-heating zone 3132. The computation of the demand price can be computed as described above using the appropriate dominant mode bid curve.

By using the sliding mode of operation, the benefit of some pre-heating and pre-cooling can be realized. Furthermore, the dominant mode can be switched according to one or more of the criteria recited above, such as when the base set point of the non-dominant mode is crossed. In other embodiments, however, the dominant mode can be switched when the pre-heating or pre-cooling zone of the non-dominant bid curve is reached (e.g., upon the current temperature reaching the upper temperature limit of the partial pre-heating zone 3132). Although FIG. 31 only shows an example of when cooling is the dominant mode and the heating bid curve is partially modified, it is to be understood that a similar modification of the cooling bid curve can occur when heating is the dominant mode.

FIG. 32 is a flowchart 3200 showing a generalized method for operating a transactive controller in a manner that resolves bid curve conflicts according to embodiments of the disclosed technology. In particular implementations, the method illustrated in flowchart 3300 can be used by a transactive thermostatic controller controller a heating and cooling system in an “AUTO” mode, in which both cooling and heating operations are automatically controlled by the controller. Embodiments of the disclosed method can be performed by computing hardware in a transactive controller or by a computer or other computing hardware that controls or implements the transactive controller. The disclosed method acts should not be construed as limiting, as they can be performed alone, in any combination or subcombination with one another, or in a different order.

At 3210, a first bid curve is determined. In this embodiment, the first bid curve indicates a first set of bid prices for corresponding temperatures. Furthermore, in the illustrated embodiment, the first bid curve is associated with a cooling mode of operation for a heating and cooling system (e.g., an HVAC system). As explained above (e.g., in Section IV.A and IV.B), the first bid curve can be determined from various values input by a user (e.g., a desired temperature set point, lower and upper limits, and/or a comfort setting).

At 3212, a second bid curve is determined. In this embodiment, the second bid curve indicates a second set of bid prices for corresponding temperatures. Furthermore, in the illustrated embodiment, the second bid curve is associated with a heating mode of operation for a heating and cooling system (e.g., an HVAC system). As explained above (e.g., in Section IV.A and IV.C), the second bid curve can be determined from various values input by a user (e.g., a temperature set point, lower and upper limits, and/or a comfort setting).

At 3214, the first bid curve, the second bid curve, or the first bid curve and the second bid curve are modified to prevent overlap of any portion of the first bid curve and the second bid curve. For example, the first bid curve can be modified by eliminating at least a portion of a pre-cooling portion of the first bid curve (e.g., by adjusting the minimum temperature (T_(min)) of the cooling mode bid curve or otherwise reducing the temperature range through which pre-cooling is triggered) and/or by eliminating at least a portion of a pre-heating portion of the second bid curve (e.g., by adjusting the maximum temperature (T_(max)) of the heating mode bid curve or otherwise reducing the temperature range through which pre-heating is triggered). In certain implementations, the pre-cooling and/or pre-heating portions are completely removed (e.g., as in diagram 2700 of FIG. 27). In some embodiments, the modification is performed so that the two curves are separated from one another by a fixed amount (e.g., by a deadband setting for the HVAC system, which can be user-selected or preset, or by any other user-selected or predetermined amount). The “dead zone” region between the two curves can be located at a particular location. For example, the region can be centered about an average temperature between a cooling mode set point and a heating mode set point (e.g., as in diagram 2800 of FIG. 28).

It should be noted that in certain embodiments of the disclosed technology, the bid curves are not modified, but rather the controller or system's response to the bid curves is adjusted so that the controller or system effectively operates as if the bid curves had been modified. The performance of the controller or system in such embodiments can be adjusted to match any of the above-described embodiments.

FIG. 33 is a flowchart 3300 showing another generalized method for operating a transactive controller in a manner that resolves bid curve conflicts. In particular implementations, the method illustrated in flowchart 3300 can be used by a transactive thermostatic controller for a heating and cooling system in an “AUTO” mode, in which both cooling and heating operations are automatically controlled by the controller. Embodiments of the disclosed method can be performed by computing hardware in a transactive controller or by a computer or other computing hardware that controls or implements the transactive controller. The disclosed method acts should not be construed as limiting, as they can be performed alone, in any combination or subcombination with one another, or in a different order.

At 3310, the controller is set so that there is no dominant mode. This can occur when the controller is first turned on or first set to operate in “AUTO” mode. As more fully explained below, there are also certain situations in which the controller is desirably reset so that there is no dominant mode.

At 3312, the temperature in the space controlled by the controller, referred to as the observed temperature, is monitored. The observed temperature can be the temperature registered at the controller or by one or more thermometers in the space, premises, or room controller by the controller.

At 3314, a determination is made as to whether the observed temperature exceeds a cooling mode temperature set point. The cooling mode temperature set point can correspond to the cooling mode temperature base set point described above with respect to FIG. 24 (e.g., the desired temperature of the cooling mode T_(des)). If so, then the controller is set into the cooling mode at 3318; otherwise, at 3316 a determination is made as to whether the observed temperature is less than the heating mode temperature set point. The heating mode temperature set point can correspond to the heating mode temperature base set point described above with respect to FIG. 25 (e.g., the desired temperature of the heating mode T_(des)). If so, then the controller is set into the heating mode at 3326; otherwise, the process repeats by monitoring the observed temperature again at 3312.

At 3318, when the controller switches to the cooling mode as the dominant mode, the bid curves that are used to determine the bid price for the transactive controller favor the cooling mode bid curve. For example, the bid curves used can include a cooling mode bid curve that includes a first pre-cooling portion and a heating mode bid curve that either does not include any pre-heating portion or that includes a pre-heating portion that applies across a smaller temperature range than the pre-cooling portion of the cooling mode bid curve. In certain embodiments, the heating mode bid curve and the cooling mode bid curve can be separated from one another by a fixed amount (e.g., a deadband).

At 3320, with the controller operating in the cooling mode, a determination is made as to whether the observed temperature is less than the set point for activating heating mode. If so, then the process proceeds to 3326, where the controller is switched so that the heating mode is the dominant mode; otherwise, the process continues with 3322.

At 3322, a determination is made as to whether any other events have been detected that would trigger the controller to change operational states. If so, then the controller resets at 3310 so that there is no dominant mode; otherwise, the process proceeds to 3324. In certain embodiments, a change event includes one or more of the following: (1) detection of a schedule change; (2) detection of a change to the set point for triggering the cooling mode; (3) detection of a change to the set point for triggering the heating mode; or (4) detection of a change in the operational state of the controller (e.g., if the user selects to operate the controller in a mode other than “AUTO”).

At 3324, with the controller operating in the cooling mode, the observed temperature is again monitored and the process repeats from 3320.

At 3326, when the controller switches to the heating mode as the dominant mode, the bid curves that are used to determine the bid price for the transactive controller favor the heating mode bid curve. For example, the bid curves used can include a heating mode bid curve that includes a pre-heating portion and a cooling mode bid curve that either does not include any pre-cooling portion or that includes a pre-cooling portion that applies across a smaller temperature range than the pre-heating portion of the heating mode bid curve. In certain embodiments, the heating mode bid curve and the cooling mode bid curve can be separated from one another by a fixed amount (e.g., a deadband).

At 3328, with the controller operating in the heating mode, a determination is made as to whether the observed temperature exceeds the set point for activating the cooling mode. If so, then the process proceeds to 3318, where the controller is switched so that the cooling mode becomes the dominant mode; otherwise, the process continues with 3330.

At 3330, a determination is made as to whether any other events have been detected that would trigger the controller to change operational states. If so, then the controller resets at 3310 so that there is no dominant mode; otherwise, the process proceeds to 3332. In certain embodiments, a change event includes one or more of the following: (1) detection of a schedule change; (2) detection of a change to the set point for triggering the cooling mode; (3) detection of a change to the set point for triggering the heating mode; or (4) detection of a change in the operational state of the controller (e.g., if the user selects to operate the controller in a mode other than “AUTO”).

At 3332, with the controller operating in the cooling mode, the observed temperature is again monitored and the process repeats from 3328.

It should be noted that in certain embodiments of the disclosed technology, the bid curves are not altered when the controller operates in a cooling mode versus a heating mode, but rather the controller or system's response to the bid curves is adjusted so that the controller or system effectively operate as if the bid curves were modified as described above. The performance of the controller or system in such embodiments can be adjusted to match any of the above-described embodiments.

V. Concluding Remarks

Having described and illustrated the principles of the disclosed technology in the detailed description and accompanying drawings, it will be recognized that the various embodiments can be modified in arrangement and detail without departing from such principles.

For example, it is to be understood that any of the features and embodiments described herein can be used in combination with any of the features and embodiments described in U.S. Provisional Application No. 61/194,596 filed on Sep. 29, 2008, and entitled “METHOD AND SYSTEM FOR ELECTRIC POWER GRID CONTROL”; U.S. Nonprovisional application Ser. No. 12/587,008, filed on Sep. 29, 2009, and entitled “ELECTRIC POWER GRID CONTROL USING A MARKET-BASED RESOURCE ALLOCATION SYSTEM” (published as U.S. Patent Application Publication No. 2010/0114387); U.S. Nonprovisional application Ser. No. 12/587,009, filed on Sep. 29, 2009, and entitled “USING BI-DIRECTIONAL COMMUNICATIONS IN A MARKET-BASED RESOURCE ALLOCATION SYSTEM” (published as U.S. Patent Application Publication No. 2010/0106332); U.S. Nonprovisional application Ser. No. 12/587,006, filed on Sep. 29, 2009, and entitled “USING ONE-WAY COMMUNICATIONS IN A MARKET-BASED RESOURCE ALLOCATION SYSTEM” (published as U.S. Patent Application Publication No. 2010/0106641); U.S. Nonprovisional application Ser. No. 12/587,000, filed on Sep. 29, 2009, and entitled “DISTRIBUTING RESOURCES IN A MARKET-BASED RESOURCE ALLOCATION SYSTEM” (published as U.S. Patent Application Publication No. 2010/0107173); U.S. Provisional Application No. 61/143,954 filed on Jan. 12, 2009, and entitled “NESTED, HIERARCHICAL RESOURCE ALLOCATION SCHEMA FOR MANAGEMENT AND CONTROL OF AN ELECTRIC POWER GRID”; U.S. Nonprovisional application Ser. No. 12/686,243, filed on Jan. 12, 2010, and entitled “NESTED, HIERARCHICAL RESOURCE ALLOCATION SCHEMA FOR MANAGEMENT AND CONTROL OF AN ELECTRIC POWER GRID,” (published as U.S. Patent Application Publication No. 2010/0179862), U.S. Nonprovisional application Ser. No. 13/096,682, filed on Apr. 28, 2011 concurrently herewith, and entitled “FORWARD-LOOKING TRANSACTIVE PRICING SCHEMES FOR USE IN A MARKET-BASED RESOURCE-BASED ALLOCATION SYSTEM,” all of which are hereby incorporated herein by reference.

In view of the many possible embodiments to which the principles of the disclosed invention may be applied, it should be recognized that the illustrated embodiments are only preferred examples of the invention and should not be taken as limiting the scope of the invention. Rather, the scope of the invention is defined by the following claims and their equivalents. We therefore claim as our invention all that comes within the scope and spirit of these claims. 

1. A method for operating a thermostatic controller configured to submit bids to a market-based resource allocation system, the method being implemented by computing hardware and comprising: determining a first bid curve, the first bid curve indicating a first set of bid prices for corresponding temperatures, the first bid curve being associated with a cooling mode of operation for a heating and cooling system; determining a second bid curve, the second bid curve indicating a second set of bid prices for corresponding temperatures, the second bid curve being associated with a heating mode of operation for the heating and cooling system; modifying the first bid curve, the second bid curve, or the first bid curve and the second bid curve to prevent overlap of any portion of the first bid curve and the second bid curve.
 2. The method of claim 1, wherein the modifying comprises modifying the first bid curve and not the second bid curve.
 3. The method of claim 1, wherein the modifying comprises modifying the second bid curve and not the first bid curve.
 4. The method of claim 1, wherein the modifying comprises modifying the first bid curve by eliminating at least a portion of a pre-cooling zone of the first bid curve or eliminating at least a portion of a pre-heating zone of the second bid curve.
 5. The method of claim 1, wherein the modifying comprises modifying the first bid curve and the second bid curve so that the first bid curve does not include a pre-cooling zone and the second bid curve does not include a pre-heating zone.
 6. The method of claim 1, wherein the modifying comprises modifying the first bid curve and the second bid curve so that a lower end of the first bid curve is separated from an upper end of the second bid curve by a fixed amount.
 7. The method of claim 1, wherein the fixed amount corresponds to a deadband setting for the HVAC system.
 8. The method of claim 1, wherein the modifying comprises modifying the first bid curve and the second bid curve by creating a region between the first bid curve and the second bid curve that does not trigger pre-heating or pre-cooling.
 9. The method of claim 8, wherein the region between the first bid curve and the second bid curve is centered about an average temperature between a cooling mode set point and a heating mode set point.
 10. One or more computer-readable storage media storing computer-executable instructions which when executed by a computer cause the computer to perform the method of claim
 1. 11. A transactive controller comprising computing hardware configured to perform the method of claim
 1. 12. A method for operating a thermostatic controller configured to submit bids to a market-based resource allocation system, the method comprising: responsive to an observed temperature, causing a heating, ventilation, and air conditioning (“HVAC”) system to become operational in a first operational mode, the first operational mode being associated with a first bid curve for determining a bid price for submission to a market-based resource allocation system; and while the HVAC system operates in the first operational mode, modifying a second bid curve associated with a second operational mode or a response by the controller to the second bid curve so that the second bid curve does not interfere with the HVAC system operating according the first bid curve.
 13. The method of claim 12, wherein the first operational mode is a cooling mode, the first bid curve is a cooling mode bid curve, the second operational mode is a heating mode, and the second bid curve is a heating mode bid curve.
 14. The method of claim 13, wherein the modifying comprises eliminating at least a portion of a pre-heating zone of the heating mode bid curve or eliminating the response by the controller to at least a portion of the pre-heating zone of the heating mode bid curve.
 15. The method of claim 13, wherein the modifying comprises modifying an upper temperature limit of the heating mode bid curve to be less than a lower temperature limit of the cooling mode bid curve.
 16. The method of claim 13, wherein the upper temperature limit of the heating mode bid curve is less than the lower temperature limit of the cooling mode bid curve by at least an amount corresponding to a deadband setting for the HVAC system.
 17. The method of claim 12, wherein the first operational mode is a heating mode, the first bid curve is a heating mode bid curve, the second operational mode is a cooling mode, and the second bid curve is a cooling mode bid curve.
 18. The method of claim 17, wherein the modifying comprises eliminating at least a portion of a pre-cooling zone of the cooling mode bid curve or eliminating the response by the controller to at least a portion of the pre-cooling zone of the cooling mode bid curve.
 19. The method of claim 17, wherein the modifying comprises modifying a lower temperature limit of the cooling mode bid curve to be greater than an upper temperature limit of the heating mode bid curve.
 20. The method of claim 17, wherein the lower temperature limit of the cooling mode bid curve is greater than the upper temperature limit of the heating mode bid curve by at least an amount corresponding to a deadband setting for the HVAC system.
 21. The method of claim 12, further comprising designating the first operational mode of the HVAC system as the dominant mode.
 22. The method of claim 21, further comprising changing the designation of the dominant mode from the first operational mode if one or more of the following occurs: (a) an observed temperature crosses a base set temperature for activating the second operational mode; (b) a schedule change is detected; or (c) a change to a base set temperature for either the first operational mode or the second operational is detected.
 23. The method of claim 12, wherein the currently observed temperature is a first observed temperature, and wherein the method further comprises: responsive to a second observed temperature, causing the HVAC system to become operational in the second operational mode; and while the HVAC system operates in the second operational mode, restoring the second bid curve to its unmodified state or the response by the controller to the second bid curve to its original response.
 24. The method of claim 23, further comprising modifying the first bid curve or a response by the controller to the first bid curve so that the first bid curve does not interfere with the HVAC system operating according the second bid curve.
 25. One or more computer-readable storage media storing computer-executable instructions which when executed by a computer cause the computer to perform the method of claim
 23. 26. A transactive controller comprising computing hardware configured to perform the method of claim
 23. 27. A method for operating a transactive controller in a market-based resource allocation system, the method being implemented by computing hardware and comprising: when an observed temperature is greater than a set point for triggering a cooling mode, computing bids for use in a market-based resource allocation system in accordance with a first set of bid curves, the first set of bid curves including or being treated as including a first cooling mode bid curve that includes a first pre-cooling portion and a first heating mode bid curve that either does not include any pre-heating portion or that includes a first pre-heating portion that applies across a smaller temperature range than the first pre-cooling portion; and when the observed temperature is less than a set point for triggering a heating mode, computing the bids for use in the market-based resource allocation system in accordance with a second set of bid curves, the second set of bid curves including or being treated as including a second heating mode bid curve that includes a second pre-heating portion and a second cooling mode bid curve that either does not include any pre-cooling portion or that includes a second pre-cooling portion that applies across a smaller range than the second pre-heating portion.
 28. The method of claim 27, further comprising, once the observed temperature is greater than the set point for triggering the cooling mode, computing the bids in accordance with the first set of bid curves until the observed temperature is less than the set point for triggering the heating mode, and thereafter computing the bids in accordance with the second set of bid curves.
 29. The method of claim 27, further comprising, once the observed temperature is greater than the set point for triggering the cooling mode, computing the bids using the first set of bid curves until an event occurs, the event comprising one or more of: (a) detecting a schedule change; (b) detecting a change to the set point for triggering the cooling mode; or (c) detecting a change to the set point for triggering the heating mode.
 30. The method of claim 27, further comprising, once the observed temperature is less than the set point for triggering the heating mode, computing the bids in accordance with the second set of bid curves until the observed temperature is greater than the set point for triggering the cooling mode, and thereafter computing the bids in accordance with the first set of bid curves.
 31. The method of claim 27, further comprising, once the observed temperature is less than the set point for triggering the heating mode, computing the bids using the first set of bid curves until an event occurs, the event comprising one or more of: (a) detecting a schedule change; (b) detecting a change to the set point for triggering the cooling mode; or (c) detecting a change to the set point for triggering the heating mode.
 32. The method of claim 27, wherein the first pre-heating portion and the first pre-cooling portion are separated from one another by a predetermined temperature range; and wherein the second pre-heating portion and the second pre-cooling portion are separated by the predetermined temperature range.
 33. The method of claim 27, wherein the predetermined temperature range is user selectable.
 34. One or more computer-readable storage media storing computer-executable instructions which when executed by a computer cause the computer to perform the method of claim
 27. 35. A transactive controller comprising computing hardware configured to perform the method of claim
 27. 36. A method, comprising: receiving a plurality of requests for electricity from a plurality of end-use consumers, wherein each of the requests indicates a requested quantity of electricity and a consumer-requested index value indicative of a maximum price a respective end-use consumer will pay for the requested quantity of electricity; receiving a plurality of offers for supplying electricity from a plurality of resource suppliers, wherein each of the offers indicates an offered quantity of electricity and a supplier-requested index value indicative of a minimum price for which a respective supplier will produce the offered quantity of electricity; and using computing hardware, determining a dispatched index value at which electricity is to be supplied, wherein the act of determining the dispatched index value comprises: forming an end-use consumer curve from the requests and a resource supplier curve from the offers; determining that an intersection of the end-use consumer curve and the resource supplier curve occurs at a same quantity level but at two different index value levels; and selecting an index value between the two different index value levels as the dispatched index value.
 37. The method of claim 36, wherein the selecting the dispatched index value comprises selecting an index value that is an average of the two different index value levels.
 38. The method of claim 36, wherein the selecting the dispatched index value comprises: determining that a next higher offer in the resource supplier curve after the intersection has an index value that is less than the average of the two different index value levels; and selecting as the dispatched index value an index value that is below the index value of the next higher offer in the resource supplier curve.
 39. The method of claim 38, wherein the dispatched index value is a single index value increment below the index value of the next higher offer in the resource supplier curve.
 40. The method of claim 36, wherein the selecting the dispatched index value comprises: determining that a next lower request in the end-use consumer curve after the intersection has an index value that is greater than the average of the two different index value levels; and selecting as the dispatched index value an index value that is above the index value of the next lower offer in the end-use consumer curve.
 41. The method of claim 40, wherein the dispatched index value is a single index value increment above the index value of the next lower offer in the end-use consumer curve.
 42. The method of claim 36, wherein the forming the end-use consumer curve from the requests and the resource supplier curve from the offers comprises: separating the requests and the offers into two groups; and sorting each item in the two groups according to index value and a cumulative quantity level.
 43. The method of claim 36, further comprising transmitting the dispatched index value to at least one of the end-use consumers or resource suppliers.
 44. One or more non-transitory computer-readable medium storing computer-readable instructions which when executed by a computer cause the computer to perform the method of claim
 36. 45. A method, comprising: receiving a plurality of requests for electricity from a plurality of end-use consumers, wherein each of the requests indicates a requested quantity of electricity and a consumer-requested index value indicative of a maximum price a respective end-use consumer will pay for the requested quantity of electricity; receiving a plurality of offers for supplying electricity from a plurality of resource suppliers, wherein each of the offers indicates an offered quantity of electricity and a supplier-requested index value indicative of a minimum price for which a respective supplier will produce the offered quantity of electricity; and using computing hardware, determining a dispatched index value at which electricity is to be supplied, wherein the act of determining the dispatched index value comprises: forming an end-use consumer curve from the requests and a resource supplier curve from the offers; determining that the end-use consumer curve and the resource supplier curve do not intersect; and selecting as the dispatched index value an index value that is higher than an index value of the request with the highest index value.
 46. The method of claim 45, wherein the index value of the request with the highest index value is lower than an index value of the offer with the lowest index value, and wherein the selected dispatched index value is between the index value of the request with the highest index value and the index value of the offer with the lowest index value.
 47. The method of claim 46, wherein the selected dispatched index value is the average of the index value of the request with the highest index value and the index value of the offer with the lowest index value.
 48. The method of claim 45, wherein the selected dispatched index value is at a price cap.
 49. The method of claim 45, further comprising transmitting the dispatched index value to at least one of the end-use consumers or resource suppliers.
 50. One or more non-transitory computer-readable medium storing computer-readable instructions which when executed by a computer cause the computer to perform the method of claim
 45. 51. A method, comprising: receiving a plurality of requests for electricity from a plurality of end-use consumers, wherein each of the requests indicates a requested quantity of electricity and a consumer-requested index value indicative of a maximum price a respective end-use consumer will pay for the requested quantity of electricity; receiving a plurality of offers for supplying electricity from a plurality of resource suppliers, wherein each of the offers indicates an offered quantity of electricity and a supplier-requested index value indicative of a minimum price for which a respective supplier will produce the offered quantity of electricity; and using computing hardware, determining a dispatched index value at which electricity is to be supplied, wherein the act of determining the dispatched index value comprises: computing a quantity of electricity used by end-use consumers that do not respond to the dispatched index value; determining that the offered quantities of electricity only satisfy the quantity used by end-use consumers that do not respond to the dispatched index value; and selecting as the dispatched index value an index value that is higher than the index value of the offer with the highest index value.
 52. The method of claim 51, wherein the dispatched index value is a single index value increment above the index value of the offer with the highest index value.
 53. The method of claim 51, further comprising transmitting the dispatched index value to at least one of the end-use consumers or resource suppliers.
 54. One or more non-transitory computer-readable medium storing computer-readable instructions which when executed by a computer cause the computer to perform the method of claim
 51. 